JavaSE:线程 - 静态方法的锁定

1.静态方法的锁定

<1>  当我们对一个静态方法加锁,如:

      public synchronized static void xxx() {...}

    那么,该方法锁的对象是类对象。 每个类都有唯一的一个类对象。

    获取类对象的方式:类名.class

 

<2>  静态方法与非静态方法,同时使用了synchronized后,他们之间是非互斥关系的。

     原因在于:静态方法 - 锁的是类对象

          非静态方法 - 锁的是当前方法所属对象

 

2.注意事项

  使用synchronized保证线程同步应当注意:

    <1>多个需要同步的线程,在访问同步块时,看到的应该是同一个锁对象引用

    <2>在使用同步块时,应当尽量减少同步范围,以提高并发的执行效率

posted @ 2021-06-17 15:43  Jasper2003  阅读(427)  评论(0编辑  收藏  举报