java高并發(fā)程序設(shè)計(jì) - 網(wǎng)易云課堂
為了更好的支持并發(fā)程序,JDK內(nèi)部提供了大量的實(shí)用的API與框架。
同步控制是并發(fā)程序必不可少的手段,synchronized就是最簡單的控制方法。
這里介紹synchronized的替代品-重入鎖。
相關(guān)包:
java.util.concurrent.locks.ReentrantLock
相關(guān)方法:
lkObj.lock();獲取鎖,如果鎖被占用,一直等待;
lkObj.lockInterruptibly();獲得鎖,但優(yōu)先響應(yīng)中斷;
lkObj.tryLock();嘗試獲得鎖,如果獲得了,返回true;如果沒有獲得,返回false;不等待的。
lkObj.tryLock(1000, TimeUnit.MILLISECONDS);在指定的時(shí)間內(nèi)獲得鎖,如果獲得了,返回true;如果沒有獲得,返回false;
lkObj.unlock();釋放鎖;