简单地说,串行化同一时刻的请求。Singlton中用到。

解决方案 »

  1.   

    在多线程程序中,不同的线程可能在同一段时间内同时访问资源,如某个变量,某个方法,还有某个代码段,从而产生冲突,严重一点可能导致死锁。为了避免这种情况,使用关键字synchronized.
       它可以保证某一个时刻只有一个线程访问资源。其他想访问该资源的线程都必须等待,直到要访问的对象不被使用时才可以访问该资源。
    举两个例子:
      synchronized void myMethod(){
      //your code
      }  synchronized(anyObject){
       //这个对象和这段代码都是同步的
      }
      

  2.   

    线程同步,用于多线程,防止资源冲突
    有些信号量的意思。
    对某些资源必须使用
    比如对数据库里面添加数据
    对table就得使用这种机制
    否则要是2个人同时修改一个table,那就热闹了!
    肯定有1个的修改无效