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

为什么使用synchronize关键字:

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

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

 

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

同步代码块:

  

同步方法:

从结果可以看出:

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

在不同实例中:

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

 

class锁:

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

 

posted @ 2017-12-16 16:25  我要变肥  阅读(2876)  评论(0编辑  收藏  举报