ThreadLocal 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此類別提供執行緒-局部變數。
[Android.Runtime.Register("java/lang/ThreadLocal", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public class ThreadLocal : Java.Lang.Object
[<Android.Runtime.Register("java/lang/ThreadLocal", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type ThreadLocal = class
inherit Object
- 繼承
- 衍生
- 屬性
備註
此類別提供執行緒-局部變數。 這些變數與一般變數不同,每個透過其getset或方法存取的執行緒,都有獨立初始化的變數副本。
ThreadLocal 實例通常是類別中的私有靜態欄位,這些欄位希望將狀態與執行緒關聯(例如,使用者 ID 或交易 ID)。
例如,以下類別會產生每個執行緒本地的唯一識別碼。 執行緒的 id 會在第一次呼叫 ThreadId.get() 時被分配,之後的呼叫中保持不變。
import java.util.concurrent.atomic.AtomicInteger;
public class ThreadId {
// Atomic integer containing the next thread ID to be assigned
private static final AtomicInteger nextId = new AtomicInteger(0);
// Thread local variable containing each thread's ID
private static final ThreadLocal<Integer> threadId =
new ThreadLocal<Integer>() {
@Override protected Integer initialValue() {
return nextId.getAndIncrement();
}
};
// Returns the current thread's unique ID, assigning it if necessary
public static int get() {
return threadId.get();
}
}
每個執行緒只要執行緒仍然存活且 ThreadLocal 實例可存取,就會隱含對其執行緒本地變數的參考;當執行緒消失後,其所有執行緒本地實例的副本都會進行垃圾回收(除非存在其他對這些副本的參考)。
在 1.2 版本中加入。
Java 文件 java.lang.ThreadLocal。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| ThreadLocal() |
建立一個執行緒的本地變數。 |
| ThreadLocal(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
回傳此 |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| JniPeerMembers |
取得用於調用此 Java 節點成員的 JNI 元資料。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| Equals(Object) |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| Get() |
回傳當前執行緒副本中這個 thread-local 變數的值。 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| InitialValue() |
回傳目前執行緒對此執行緒-局部變數的「初始值」。 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| Remove() |
移除目前執行緒對此 thread-local 變數的值。 |
| Set(Object) |
將目前執行緒對此 thread-local 變數的複製設定為指定的值。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| WithInitial(ISupplier) |
建立一個執行緒的本地變數。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
此類別提供執行緒-局部變數。 (繼承來源 JavaObject) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
此類別提供執行緒-局部變數。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |