語言

ReentrantReadWriteLock.ReentrantReadLock.LockInterruptibly 方法

定義

除非目前執行緒被 Thread#interrupt 中斷,否則會取得讀取鎖。

[Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler")]
public virtual void LockInterruptibly();
[<Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler")>]
abstract member LockInterruptibly : unit -> unit
override this.LockInterruptibly : unit -> unit

實作

屬性

例外狀況

如果目前執行緒被中斷

備註

除非目前執行緒被 Thread#interrupt 中斷,否則會取得讀取鎖。

若寫鎖未被其他執行緒持有,則取得該讀取鎖並立即回傳。

如果寫入鎖被其他執行緒持有,則目前執行緒將因排程而被停用,並處於休眠狀態,直到以下兩種情況之一發生:

<UL>

<li>讀取鎖由當前執行緒取得;或

<li>某個其他執行緒 Thread#interrupt 會中斷目前執行緒。

</ul>

如果目前的討論串:

<UL>

<LI>在其進入此方法時設定為中斷狀態;或

<li>是 Thread#interrupt 在取得讀取鎖時被中斷,

</ul>

接著 InterruptedException 拋出,當前執行緒的中斷狀態被清除。

在此實作中,由於此方法為明確的中斷點,優先回應中斷而非正常或重入鎖定。

的 java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock.lockInterruptibly()Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於