Java synchronized (1)

  1. 解决问题

    多线程并发问题。

  2. 原理

     

  3. 注意点

     a.  synchronized(class、this、object)区别?

        synchronized(class)很特别,它会让另一个线程在任何需要获取class做为monitor的地方等待。class和this可以同时使用

       1. 对于实例同步方法,锁定当前实例对象;

       2. 对于静态同步方法,锁定当前对象的class对象;

       3. 对于方法同步块,synchronized锁定括号内配置的对象。

       class与this的几种情况:

          synchronized(class)

          synchronized(this)

          线程各自获取monitor,不会等待;

          synchronized(this)

          synchronized(this)

          如果不同线程监视同一个实例对象,就会等待;如果不同的实例,就不会等待;

          synchronized(class)

          synchronized(class)

          如果不同线程监听同一个实例或不同的实例对象,都会等待。

 

   

 

posted on 2017-10-26 10:47  齊帥  阅读(134)  评论(0编辑  收藏  举报

导航