Lock和内置锁synchronized有相似的加锁机制。但是有一些功能就是内置锁无法实现的。
(1)无法中断一个正在等待获取锁的线程。
(2)无法实现非阻塞结构的加锁机制。
标准实现机制:
Lock l = ...; l.lock(); try { // access the resource protected by this lock } finally { l.unlock(); }
Lock和内置锁synchronized有相似的加锁机制。但是有一些功能就是内置锁无法实现的。
(1)无法中断一个正在等待获取锁的线程。
(2)无法实现非阻塞结构的加锁机制。
标准实现机制:
Lock l = ...; l.lock(); try { // access the resource protected by this lock } finally { l.unlock(); }