我想弄清楚如何才能正確地等待,直到在另一個線程中釋放一個鎖。如何等待,直到在Java的另一個線程中釋放鎖定?
我覺得代碼將更好地解釋這是什麼意思:
myLock.lock();
sendSomewhereMyLock(myLock); //creates new threads inside
myLock.waitUntilReleasedByAnotherThread(60L, TimeUnit.SECONDS);
//do something after the lock is released
我認爲tryLock(long time, TimeUnit unit)
是我需要的方法,但Java文檔說,因爲鎖被收購的方法將被立即執行當前線程:
如果鎖定可用,則此方法立即返回 值爲true。如果鎖不可用,則當前線程 的線程調度目的就退出,一直處於休眠狀態 三種情況之一發生:
- 鎖定由當前線程獲得;或
- 某些其他線程中斷當前線程,並支持中斷鎖獲取;或
- 在指定的等待時間
我應該用什麼呢?
這是一個XY問題(http://mywiki.wooledge.org/XyProblem)?你究竟在努力實現什麼? – Jason