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)关联的类中的私有静态字段。

例如,下面的类会为每个线程生成本地的唯一标识符。 首次调用 ThreadId.get() 线程时分配线程 ID,并在后续调用时保持不变。

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

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

构造函数

名称 说明
ThreadLocal()

创建线程本地变量。

ThreadLocal(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

名称 说明
Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

此类提供线程局部变量。

(继承自 Object)
JniPeerMembers

此类提供线程局部变量。

PeerReference

此类提供线程局部变量。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

名称 说明
Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

此类提供线程局部变量。

(继承自 Object)
Dispose(Boolean)

此类提供线程局部变量。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
Get()

返回当前线程副本中此线程局部变量的值。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
InitialValue()

返回此线程本地变量的当前线程的“初始值”。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Remove()

删除此线程局部变量的当前线程值。

Set(Object)

将此线程本地变量的当前线程副本设置为指定的值。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

此类提供线程局部变量。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

此类提供线程局部变量。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
WithInitial(ISupplier)

创建线程本地变量。

显式接口实现

名称 说明
IJavaPeerable.Disposed()

此类提供线程局部变量。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

此类提供线程局部变量。

(继承自 Object)
IJavaPeerable.Finalized()

此类提供线程局部变量。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

此类提供线程局部变量。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此类提供线程局部变量。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此类提供线程局部变量。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

此类提供线程局部变量。

(继承自 Object)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

此类提供线程局部变量。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于