亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

信號是否保證到達線程?

信號是否保證到達線程?

慕容708150 2021-09-03 21:55:09
假設我有三個線程,T1, T2, T3一個鎖lock和cond一個Resource資源上的一些條件。T1獲得鎖,現在cond.await()由于某些條件而T2獲得該鎖,cond.signal()然后繼續執行lock.unlock(),但有一段時間,T3也試圖獲得鎖,所以它位于 的行lock.lock(),究竟發生了什么?是T2重新獲得鎖還是獲得了鎖,還是T3基于 scheudler 是隨機的?
查看完整描述

2 回答

?
白衣非少年

TA貢獻1155條經驗 獲得超0個贊

每當發出信號時,其中一個等待線程將被刪除并放回入口集中,以便他有機會運行。就 signalAll 而言,所有等待線程將從等待集中移除并放回入口集中,以便它們有機會運行。

是的,調度程序然后決定從條目集中選擇哪個線程。在公平方面,等待時間最長的人將首先獲得機會。

很好的解釋在這里


查看完整回答
反對 回復 2021-09-03
?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

如果您閱讀了文檔,即 的 javadoc ReentrantLock,它會在第 3 段中專門回答這個問題:

此類的構造函數接受一個可選的公平參數。當 set 時true,在爭用情況下,鎖傾向于授予對等待時間最長的線程的訪問權限。否則這個鎖不能保證任何特定的訪問順序。


查看完整回答
反對 回復 2021-09-03
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號