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
Наследование
Thread
Производный
Атрибуты
Реализации

Комментарии

Поток — это поток выполнения в программе. Виртуальная машина 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
                        &nbsp;.&nbsp;.&nbsp;.
                    }
                }

</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
                        &nbsp;.&nbsp;.&nbsp;.
                    }
                }

</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 объект .

Thread(Action)

Поток — это поток выполнения в программе.

Thread(Action, String)

Поток — это поток выполнения в программе.

Thread(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Thread(IRunnable)

Выделяет новый Thread объект .

Thread(IRunnable, String)

Выделяет новый Thread объект .

Thread(String)

Выделяет новый Thread объект .

Thread(ThreadGroup, Action)

Поток — это поток выполнения в программе.

Thread(ThreadGroup, Action, String)

Поток — это поток выполнения в программе.

Thread(ThreadGroup, Action, String, Int64)

Поток — это поток выполнения в программе.

Thread(ThreadGroup, IRunnable)

Выделяет новый Thread объект .

Thread(ThreadGroup, IRunnable, String)

Выделяет новый Thread объект таким образом, чтобы он был в target качестве объекта выполнения, имеет указанное name имя в качестве имени и принадлежал к группе потоков, на которую ссылается group.

Thread(ThreadGroup, IRunnable, String, Int64)

Выделяет новый Thread объект таким образом, чтобы он был target в качестве объекта выполнения, имеет указанное name имя и принадлежал к группе потоков, на которую ссылается group, и имеет указанный размер стека.

Thread(ThreadGroup, IRunnable, String, Int64, Boolean)

Выделяет новый Thread объект таким образом, чтобы он был target в качестве объекта выполнения, имеет указанное name имя в качестве имени, принадлежит к группе потоков, на которую ссылается group, имеет указанный stackSizeи наследует начальные значения для InheritableThreadLocal наследуемых локальных переменных потока, если inheritThreadLocals имеет значение true.

Thread(ThreadGroup, String)

Выделяет новый Thread объект .

Поля

MaxPriority

Максимальный приоритет, который может иметь поток.

MinPriority

Минимальный приоритет, который может иметь поток.

NormPriority

Приоритет по умолчанию, назначенный потоку.

Свойства

AllStackTraces

Возвращает карту трассировок стека для всех динамических потоков.

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
ContextClassLoader

Возвращает контекст ClassLoader для этого потока. -или- Задает контекст ClassLoader для этого потока.

Daemon

Проверяет, является ли этот поток потоком управляющей программы. -или- Помечает этот поток как поток управляющей программы #isDaemon или поток пользователя.

DefaultUncaughtExceptionHandler

Возвращает обработчик по умолчанию, вызываемый при внезапном завершении потока из-за неперехваченного исключения. -или- Задайте обработчик по умолчанию, вызываемый, когда поток внезапно завершается из-за неперехваченного исключения, и для этого потока не определен другой обработчик.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
Id

Возвращает идентификатор этого потока.

IsAlive

Проверяет, активен ли этот поток.

IsInterrupted

Проверяет, был ли этот поток прерван.

JniIdentityHashCode

Поток — это поток выполнения в программе.

(Унаследовано от Object)
JniPeerMembers

Поток — это поток выполнения в программе.

Name

Возвращает имя этого потока. -или- Изменяет имя этого потока так, чтобы оно было равно аргументу name.

PeerReference

Поток — это поток выполнения в программе.

(Унаследовано от Object)
Priority

Возвращает приоритет этого потока. -или- Изменяет приоритет этого потока.

ThreadGroup

Возвращает группу потоков, к которой принадлежит этот поток.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

UncaughtExceptionHandler

Возвращает обработчик, вызываемый при внезапном завершении этого потока из-за неперехваченного исключения. -или- Задайте обработчик, вызываемый при внезапном завершении этого потока из-за неперехваченного исключения.

Методы

ActiveCount()

Возвращает оценку количества активных потоков в java текущего потока.

CheckAccess()

Определяет, имеет ли текущий выполняемый поток разрешение на изменение этого потока.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
CountStackFrames()
Устаревшие..

Подсчитывает количество кадров стека в этом потоке.

CurrentThread()

Возвращает ссылку на текущий выполняющийся объект потока.

Destroy()
Устаревшие..

Выдает исключение UnsupportedOperationException.

Dispose()

Поток — это поток выполнения в программе.

(Унаследовано от Object)
Dispose(Boolean)

Поток — это поток выполнения в программе.

(Унаследовано от Object)
DumpStack()

Выводит трассировку стека текущего потока в стандартный поток ошибок.

Enumerate(Thread[])

Копирует в указанный массив каждый активный поток в группе потоков текущего потока и его подгруппах.

Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
GetStackTrace()

Возвращает массив элементов трассировки стека, представляющих дамп стека этого потока.

GetState()

Возвращает состояние этого потока.

HoldsLock(Object)

Возвращает значение true , если и только в том случае, если текущий поток удерживает блокировку монитора на указанном объекте.

Interrupt()

Прерывает этот поток.

Interrupted()

Проверяет, был ли прерван текущий поток.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
Join()

Ожидает завершения этого потока.

Join(Int64)

Ожидает не более millis миллисекунда, пока этот поток не умрет.

Join(Int64, Int32)

Ожидает не более millis миллисекунд плюс nanos наносекунд, пока этот поток не умрет.

Notify()

Пробуждение одного потока, ожидающего на мониторе этого объекта.

(Унаследовано от Object)
NotifyAll()

Активирует все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
OnSpinWait()

Указывает, что вызывающий объект на мгновение не может выполнить выполнение, пока не будет выполняться одно или несколько действий со стороны других действий.

Resume()
Устаревшие..

Выдает исключение UnsupportedOperationException.

Run()

Если этот поток был создан с помощью отдельного Runnable объекта запуска, вызывается метод этого Runnable объекта run ; в противном случае этот метод не выполняет никаких действий и возвращает значение .

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
Sleep(Int64)

Вызывает текущий выполняемый поток в спящем режиме (временное прекращение выполнения) в течение указанного количества миллисекунд с учетом точности и точности системных таймеров и планировщиков.

Sleep(Int64, Int32)

Вызывает текущий выполняемый поток в спящем режиме (временное прекращение выполнения) в течение указанного количества миллисекунд плюс указанное число наносекунд с учетом точности и точности системных таймеров и планировщиков.

Start()

Приводит к началу выполнения этого потока; Виртуальная машина Java вызывает run метод этого потока.

Stop()
Устаревшие..

Выдает исключение UnsupportedOperationException.

Stop(Throwable)
Устаревшие..

Выдает исключение UnsupportedOperationException.

Suspend()
Устаревшие..

Выдает исключение UnsupportedOperationException.

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)

Поток — это поток выполнения в программе.

Применяется к