12. 内部锁:synchronized关键字

Java平台中的任何一个对象都有唯一一个与之关联的锁。这种锁被称为监视器(Monitor)或内部锁(Intrinsic Lock)。

内部锁是一种排他锁,能够保障原子性、可见性和有序性。

内部锁是通过synchronized关键字实现的

原理
image.png
同步方法

synchronized关键字修饰的方法。

// 实例方法
synchronized void aa() {
...
}

// 静态方法
static synchronized void bb() {
...
}
同步代码块

synchronized关键字修饰的代码块

synchronized(锁句柄) {
...
}
锁句柄

锁句柄是一个对象的引用(或者能够返回对象的表达式)

内部锁的使用并不会导致锁泄漏

临界区的代码即时抛出异常,也不会阻止内部锁的释放

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

推荐阅读更多精彩内容