推荐并发大师 Doug Lea《Java 并发编程:设计原则与模式》一书。
用锁的最佳实践:
- 永远只在更新对象的成员变量时加锁;
- 永远只在访问可变的成员变量时加锁;
- 永远不在调用其他对象的方法时加锁。
tryLock()方法相关参考:
https://www.cnblogs.com/donefive/p/9620133.html
tryLock(long time, TimeUnit unit)方法和tryLock()方法是类似的,只不过区别在于这个方法在拿不到锁时会等待一定的时间,在时间期限之内如果还拿不到锁,就返回false。如果如果一开始拿到锁或者在等待期间内拿到了锁,则返回true。