为了更好的支持并发程序,JDK内部提供了大量的实用的API与框架。
同步控制是并发程序必不可少的手段,synchronized就是最简单的控制方法。
这里介绍synchronized的替代品-重入锁。
相关包:
java.util.concurrent.locks.ReentrantLock
相关方法:
lkObj.lock();获取锁,如果锁被占用,一直等待;
lkObj.lockInterruptibly();获得锁,但优先响应中断;
lkObj.tryLock();尝试获得锁,如果获得了,返回true;如果没有获得,返回false;不等待的。
lkObj.tryLock(1000, TimeUnit.MILLISECONDS);在指定的时间内获得锁,如果获得了,返回true;如果没有获得,返回false;
lkObj.unlock();释放锁;