Thread Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Поток — это поток выполнения в программе.
[Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)]
public class Thread : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IRunnable
[<Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)>]
type Thread = class
inherit Object
interface IRunnable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Наследование
- Производный
- Атрибуты
- Реализации
Комментарии
Поток — это поток выполнения в программе. Виртуальная машина Java позволяет приложению одновременно выполнять несколько потоков выполнения.
Каждый поток имеет приоритет. Потоки с более высоким приоритетом выполняются в предпочтительном порядке, а не потоки с более низким приоритетом. Каждый поток также может быть помечен как управляющая программа. Когда код, выполняющийся в каком-то потоке, создает новый Thread
объект, его приоритет изначально равен приоритету создаваемого потока, и является потоком управляющей программы, если и только в том случае, если создающий поток является управляющей.
При запуске виртуальной машины Java обычно имеется один поток без управляющей программы (который обычно вызывает метод с именем main
определенного класса). Виртуальная машина Java продолжает выполнять потоки, пока не произойдет одно из следующих действий: <ul><li>Метод exit
класса Runtime
был вызван, и диспетчер безопасности разрешил операцию выхода. <li>Все потоки, которые не являются потоками управляющей программы, погибли либо путем возврата из вызова run
метода, либо путем создания исключения, которое распространяется за пределы run
метода . </ul>
Создать новый поток выполнения можно двумя способами. Один из них заключается в объявлении класса в качестве подкласса Thread
. Этот подкласс должен переопределять run
метод класса Thread
. Затем можно выделить и запустить экземпляр подкласса. Например, поток, который вычисляет простой больше указанного значения, может быть записан следующим образом: <hr><blockquote>
class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
</blockquote><hr>
Следующий код создаст поток и запустит его выполнение: <blockquote>
PrimeThread p = new PrimeThread(143);
p.start();
</blockquote>
Другой способ создания потока — объявить класс, реализующий Runnable
интерфейс . Затем этот класс реализует run
метод . Затем экземпляр класса можно выделить, передать в качестве аргумента при создании Thread
и запустить. Тот же пример в этом другом стиле выглядит следующим образом: <hr><blockquote>
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
</blockquote><hr>
Следующий код создаст поток и запустит его выполнение: <blockquote>
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
</blockquote>
Каждый поток имеет имя для целей идентификации. Несколько потоков могут иметь одно и то же имя. Если имя не указано при создании потока, для него создается новое имя.
Если не указано иное, передача null
аргумента конструктору или методу в этом классе вызовет NullPointerException
исключение .
Добавлено в версии 1.0.
Документация по Java для java.lang.Thread
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.
Конструкторы
Thread() |
Выделяет новый |
Thread(Action) |
Поток — это поток выполнения в программе. |
Thread(Action, String) |
Поток — это поток выполнения в программе. |
Thread(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Thread(IRunnable) |
Выделяет новый |
Thread(IRunnable, String) |
Выделяет новый |
Thread(String) |
Выделяет новый |
Thread(ThreadGroup, Action) |
Поток — это поток выполнения в программе. |
Thread(ThreadGroup, Action, String) |
Поток — это поток выполнения в программе. |
Thread(ThreadGroup, Action, String, Int64) |
Поток — это поток выполнения в программе. |
Thread(ThreadGroup, IRunnable) |
Выделяет новый |
Thread(ThreadGroup, IRunnable, String) |
Выделяет новый |
Thread(ThreadGroup, IRunnable, String, Int64) |
Выделяет новый |
Thread(ThreadGroup, IRunnable, String, Int64, Boolean) |
Выделяет новый |
Thread(ThreadGroup, String) |
Выделяет новый |
Поля
MaxPriority |
Максимальный приоритет, который может иметь поток. |
MinPriority |
Минимальный приоритет, который может иметь поток. |
NormPriority |
Приоритет по умолчанию, назначенный потоку. |
Свойства
AllStackTraces |
Возвращает карту трассировок стека для всех динамических потоков. |
Class |
Возвращает класс среды выполнения данного объекта |
ContextClassLoader |
Возвращает контекст |
Daemon |
Проверяет, является ли этот поток потоком управляющей программы. -или- Помечает этот поток как поток управляющей программы #isDaemon или поток пользователя. |
DefaultUncaughtExceptionHandler |
Возвращает обработчик по умолчанию, вызываемый при внезапном завершении потока из-за неперехваченного исключения. -или- Задайте обработчик по умолчанию, вызываемый, когда поток внезапно завершается из-за неперехваченного исключения, и для этого потока не определен другой обработчик. |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
Id |
Возвращает идентификатор этого потока. |
IsAlive |
Проверяет, активен ли этот поток. |
IsInterrupted |
Проверяет, был ли этот поток прерван. |
JniIdentityHashCode |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
JniPeerMembers |
Поток — это поток выполнения в программе. |
Name |
Возвращает имя этого потока. -или- Изменяет имя этого потока так, чтобы оно было равно аргументу |
PeerReference |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
Priority |
Возвращает приоритет этого потока. -или- Изменяет приоритет этого потока. |
ThreadGroup |
Возвращает группу потоков, к которой принадлежит этот поток. |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
UncaughtExceptionHandler |
Возвращает обработчик, вызываемый при внезапном завершении этого потока из-за неперехваченного исключения. -или- Задайте обработчик, вызываемый при внезапном завершении этого потока из-за неперехваченного исключения. |
Методы
ActiveCount() |
Возвращает оценку количества активных потоков в java текущего потока. |
CheckAccess() |
Определяет, имеет ли текущий выполняемый поток разрешение на изменение этого потока. |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
CountStackFrames() |
Устаревшие..
Подсчитывает количество кадров стека в этом потоке. |
CurrentThread() |
Возвращает ссылку на текущий выполняющийся объект потока. |
Destroy() |
Устаревшие..
Выдает исключение |
Dispose() |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
Dispose(Boolean) |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
DumpStack() |
Выводит трассировку стека текущего потока в стандартный поток ошибок. |
Enumerate(Thread[]) |
Копирует в указанный массив каждый активный поток в группе потоков текущего потока и его подгруппах. |
Equals(Object) |
Указывает, равен ли какой-то другой объект этому объекту. (Унаследовано от Object) |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
GetStackTrace() |
Возвращает массив элементов трассировки стека, представляющих дамп стека этого потока. |
GetState() |
Возвращает состояние этого потока. |
HoldsLock(Object) |
Возвращает значение |
Interrupt() |
Прерывает этот поток. |
Interrupted() |
Проверяет, был ли прерван текущий поток. |
JavaFinalize() |
Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект . (Унаследовано от Object) |
Join() |
Ожидает завершения этого потока. |
Join(Int64) |
Ожидает не более |
Join(Int64, Int32) |
Ожидает не более |
Notify() |
Пробуждение одного потока, ожидающего на мониторе этого объекта. (Унаследовано от Object) |
NotifyAll() |
Активирует все потоки, ожидающие на мониторе этого объекта. (Унаследовано от Object) |
OnSpinWait() |
Указывает, что вызывающий объект на мгновение не может выполнить выполнение, пока не будет выполняться одно или несколько действий со стороны других действий. |
Resume() |
Устаревшие..
Выдает исключение |
Run() |
Если этот поток был создан с помощью отдельного |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
Sleep(Int64) |
Вызывает текущий выполняемый поток в спящем режиме (временное прекращение выполнения) в течение указанного количества миллисекунд с учетом точности и точности системных таймеров и планировщиков. |
Sleep(Int64, Int32) |
Вызывает текущий выполняемый поток в спящем режиме (временное прекращение выполнения) в течение указанного количества миллисекунд плюс указанное число наносекунд с учетом точности и точности системных таймеров и планировщиков. |
Start() |
Приводит к началу выполнения этого потока; Виртуальная машина Java вызывает |
Stop() |
Устаревшие..
Выдает исключение |
Stop(Throwable) |
Устаревшие..
Выдает исключение |
Suspend() |
Устаревшие..
Выдает исключение |
ToArray<T>() |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
Wait() |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>. (Унаследовано от Object) |
Wait(Int64) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени. (Унаследовано от Object) |
Yield() |
Подсказка планировщику о том, что текущий поток готов предоставить текущий процессор. |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
IJavaPeerable.Finalized() |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
IJavaPeerable.JniManagedPeerState |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Поток — это поток выполнения в программе. (Унаследовано от Object) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверенное средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Поток — это поток выполнения в программе. |
GetJniTypeName(IJavaPeerable) |
Поток — это поток выполнения в программе. |