1. Overview
Lock lock, manually acquire and release the lock when using it, is more flexible than synchronized; acquire the lock interruptibly; acquire the lock with timeout.
Lock Basic usage of lock, l.lock() method is used to lock, l.unlock() method is used to unlock, as shown below.
Lock l = ...; l.lock(); // 上锁 try { // access the resource protected by this lock } finally { l.unlock(); // 解锁 }
2. Example
Using Lock, you must actively release the lock, and when an exception occurs, the lock will not be released automatically. Therefore, generally speaking, the use of Lock must be carried out in the try{}catch{} block, and the operation of releasing the lock must be carried out in the finally block to ensure that the lock must be released and prevent the occurrence of deadlock. Usually, if Lock is used for synchronization, it is used in the following form:
Lock lock = ...; lock.lock(); try{ //处理任务 }catch(Exception ex){ }finally{ lock.unlock(); //释放锁 }
The above is the detailed content of How to use Lock to achieve synchronization in Java. For more information, please follow other related articles on the PHP Chinese website!