为什么使用synchronize关键字:

  存在共享数据,且此数据涉及多线程操作。(如经典的多窗口卖票的例子)

同步代码块的锁为对象中定义的LOCK ,同步方法的锁为this锁。 

 

同步代码块和同步方法在同一实例中的表现:

同步代码块:

  

同步代码块以及同步方法之间的区别以及联系

同步代码块以及同步方法之间的区别以及联系

同步方法:

同步代码块以及同步方法之间的区别以及联系

同步代码块以及同步方法之间的区别以及联系

从结果可以看出:

无论是同步代码块还是同步方法,在同一实例中都能达到上锁的效果。

在不同实例中:

同步代码块以及同步方法之间的区别以及联系

可以得到结论,lock锁和this锁无法锁住不同实例中的调用

 

class锁:

当方法加上static修饰实,此时的锁为class锁,class锁能够达到不同对象间上锁的效果

同步代码块以及同步方法之间的区别以及联系

同步代码块以及同步方法之间的区别以及联系

同步代码块以及同步方法之间的区别以及联系

 

相关文章:

  • 2021-09-28
  • 2021-06-01
  • 2022-12-23
  • 2021-12-27
  • 2021-12-05
  • 2022-12-23
  • 2021-06-18
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-27
  • 2022-12-23
相关资源
相似解决方案