語言

ReentrantReadWriteLock.ReentrantWriteLock.NewCondition 方法

定義

回傳一個 Condition 實例以供該 Lock 實例使用。

[Android.Runtime.Register("newCondition", "()Ljava/util/concurrent/locks/Condition;", "GetNewConditionHandler")]
public virtual Java.Util.Concurrent.Locks.ICondition? NewCondition();
[<Android.Runtime.Register("newCondition", "()Ljava/util/concurrent/locks/Condition;", "GetNewConditionHandler")>]
abstract member NewCondition : unit -> Java.Util.Concurrent.Locks.ICondition
override this.NewCondition : unit -> Java.Util.Concurrent.Locks.ICondition

傳回

條件物件

實作

屬性

備註

回傳一個 Condition 實例以供該 Lock 實例使用。

回傳Condition的實例在內建監視器鎖使用時,支援與監控方法Object相同的使用Object#wait() wait方式(, Object#notify notify, 和 Object#notifyAll notifyAll)。

<UL>

<li>如果呼叫任何 Condition 方法時未維持此寫入鎖,則拋出 an IllegalMonitorStateException 。 (讀取鎖獨立於寫入鎖,因此不會被檢查或影響。然而,當目前執行緒也取得讀取鎖時,呼叫條件等待方法基本上總是錯誤,因為其他可解封的執行緒無法取得寫入鎖。)

<當>呼叫條件 Condition#await() 等待方法時,寫入鎖定會被釋放,在它們返回前,寫入鎖定會被重新取得,鎖保持計數會回復到方法被呼叫時的狀態。

<li>如果執行緒在等待時被 Thread#interrupted 中斷,則等待會終止,會拋出 an InterruptedException 並清除該執行緒的中斷狀態。

<li>等待執行緒依 FIFO 順序進行訊號。

<li>從等待方法返回的執行緒的鎖重新取得順序與最初取得鎖的執行緒相同,預設情況下未指定,但對 <em>而言,公平</em> 鎖偏好等待時間最長的執行緒。

</ul>

Java 文件 java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock.newCondition()。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於