synchronized同步方法(06)synchronized锁重入

关键字synchronized拥有锁重入的功能,也就是在使用synchronized时,当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁的。这也证明在一个synchronized方法或者代码块内部调用本类的其它synchronized方法或者代码块时,是永远可以得到锁的。

例如:

线程类:

运行类:

运行结果:

“可重入锁”的概念是:自己可以再次获取自己的内部锁。比如有一条线程获得了某个对象的锁,此时这个对象锁还没有释放,当其再次想要获取这个对象锁的时候还是可以获取的,如果锁不可重入的话,就会造成死锁。


看下面的例子:

子类:

线程类:

运行类:

运行结果:

此实验说明,当存在父子类继承关系时,子类时完全可以通过可重入锁调用父类的同步方法的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容