語言

ThreadLocal 類別

定義

此類別提供執行緒-局部變數。

[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
繼承
ThreadLocal
衍生
屬性

備註

此類別提供執行緒-局部變數。 這些變數與一般變數不同,每個透過其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&lt;Integer&gt; threadId =
                    new ThreadLocal&lt;Integer&gt;() {
                        &#64;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

回傳此 Object的執行時類別。

(繼承來源 Object)
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)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

此類別提供執行緒-局部變數。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於