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
- Наследование
- Производный
- Атрибуты
Комментарии
Этот класс предоставляет локальные переменные потока. Эти переменные отличаются от их обычных аналогов в том, что каждый поток, обращаюющийся к одному (через его get или set метод), имеет собственную, независимо инициализированную копию переменной.
ThreadLocal экземпляры обычно являются частными статическими полями в классах, которые хотят связать состояние с потоком (например, идентификатор пользователя или идентификатор транзакции).
Например, приведенный ниже класс создает уникальные идентификаторы, локальные для каждого потока. Идентификатор потока назначается при первом вызове 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.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| ThreadLocal() |
Создает локальную переменную потока. |
| ThreadLocal(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| JniPeerMembers |
Возвращает метаданные JNI, используемые для вызова элементов этого Java однорангового узла. |
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
| ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
| Имя. | Описание |
|---|---|
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| Equals(Object) |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| Get() |
Возвращает значение в копии текущего потока этой локальной переменной потока. |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| InitialValue() |
Возвращает исходное значение текущего потока для этой локальной переменной потока. |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| Remove() |
Удаляет значение текущего потока для этой локальной переменной потока. |
| Set(Object) |
Задает копию текущего потока этой локальной переменной потока указанным значением. |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| WithInitial(ISupplier) |
Создает локальную переменную потока. |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| IJavaPeerable.Finalized() |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Этот класс предоставляет локальные переменные потока. (Унаследовано от JavaObject) |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Этот класс предоставляет локальные переменные потока. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |