一把锁的两种承诺:synchronized如何同时保证互斥与内存可见性?

为了保护临界区,Java提供了多种互斥(Mutual Exclusion)机制,其中synchronized关键字是最常用且强大的工具之一。

synchronized实现互斥的基础是Java中的每一个对象都可以作为锁,这个锁是排他的,在任意时刻只有两种状态:被占用和未被占用。当线程请求一个由其他线程持有的锁时,请求的线程会被阻塞,直到锁被释放。这种机制确保了在任何时刻,只有一个线程能够进入临界区执行代码。

synchronized 有两种使用方式。

1)synchronized修饰方法:锁是当前实例对象。它修饰的方法称为同步方法。

赞(0)
未经允许不得转载:小狮博客 » 一把锁的两种承诺:synchronized如何同时保证互斥与内存可见性?
分享到: 更多 (0)

联系我们