Java多线程编程核心技术-读书笔记20220626-1

75 阅读1分钟

2.1.6synchronized锁重入

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

“可重入锁”的概念是:自己可以再次获取自己的内部锁。

同时也支持在父子类继承的环境中。

2.1.7出现异常,锁自动释放

当一个线程执行的代码出现异常时,其所持有的锁会自动释放。

2.1.8同步不具有继承性

同步不可用继承。

如果想实现子类的同步,需要在子类中也加上synchronized关键字。

2.2synchronized同步语句块

synchronized方法是对当前对象进行加锁,而synchronized代码块时对某一个对象进行加锁。