Когда поток создается и начинается, он не входит в состояние выполнения, как только он начинается и не всегда в состоянии выполнения. В течение своего жизненного цикла он должен пройти через пять штатов: «Новые», «бегущие», «бег», «заблокированы» и «мертвые». После того, как поток создан, невозможно занять процессор и работать независимо. Он должен переключаться между несколькими потоками, поэтому он переключается между запуском и блокировкой большую часть времени.
1. Состояние потока
Есть несколько разных состояний существования потока, следующим образом:
1. Новый статус
Новое государство - это состояние, где поток был создан, но не начал работать. Это состояние позволяет потоке запускать, вызывая метод start () потока.
2. Заполнимый статус
Забегаемое состояние можно назвать подготовительным состоянием бега или очередью. Это состояние может позволить потоке работать, вызывая метод start () потока.
Планировщик потока определяет, какие потоки запускать и как долго будет работать поток.
3. Запуск статуса
Если поток выполняется, он находится в состоянии бега.
4. мертвый статус
Как только поток попадает в мертвое состояние, она больше не может работать.
5. Незащитный статус
Java Virtual Machine JVM выполняет потоки в соответствии с принципами приоритета потока и планирования.
2. Планировщик потока
В JVM реализация планировщика потока обычно основана на следующих двух стратегиях:
Стратегия распределения стратегии расписания.
Реализация планировщика потока зависит от платформы, поэтому планирование потоков непредсказуемо.
3. Приоритет потоков
JVM присваивает приоритет каждому вновь созданному потоку.
Уровень 0: это самый низкий приоритет
Уровень 5: Это нормальный приоритет
Уровень 10: это самый высокий приоритет
Чтобы сохранить эти значения, класс потоков имеет три соответствующие переменные:
Поток сначала наследует приоритет своего родительского потока. Приоритет по умолчанию каждого потока - уровень 5 (нормальный приоритет), а приоритет по умолчанию основного потока - уровень 5.
Приоритет потока может быть установлен с помощью метода SetPriority (int Priority).
Public Final void SetPriority (int Приоритет)
public void getPriority ();
Пользовательский поток имеет поток по умолчанию поток поток+ номер последовательности, а номер последовательности начинается с 0, например, первый поток-Thread0.
Имя потока может быть установлено с помощью метода SetName (String name), и имя потока можно получить с помощью метода getName ().
public final void setName (название строки)
Public Final String GetName ().
Пример
Давайте посмотрим пример ниже:
пакет demo.ch; public class userThread extends {userThread () {super (); } UserThread (string name) {super (name); } public void run () {System.out.println ("Поток начал работать .."); } public static void main (string [] args) {userThread thread1 = new userThread ("thread1"); UserThread Thread2 = new userThread ("Thread2"); System.out.println («Поток 1 Начальное имя и приоритет»); System.out.println ("name:" + thread1.getName ()); System.out.println ("Приоритет:" + thread1.getPriority ()); System.out.println («Поток 2 Начальное имя и приоритет»); System.out.println ("name:" + thread2.getPriority ()); System.out.println ("Приоритет:" + thread2.getPriority ()); System.out.println ("" "); Thread1.SetPriority (6); Thread2.setPriority (9); System.out.println («Поток 1 Начальное имя и приоритет»); System.out.println ("name:" + thread1.getName ()); System.out.println ("Приоритет:" + thread1.getPriority ()); System.out.println («Поток 2 Начальное имя и приоритет»); System.out.println ("name:" + thread2.getName ()); System.out.println ("Приоритет:" + thread2.getPriority ()); System.out.println ("" "); Thread1.start (); Thread2.start (); for (int i = 0; i <5; i ++) System.out.println ("Основной метод i value:"+i); }}Результат вывода:
Поток 1 Первоначальное имя и имя приоритета: Thread1priority: 5thread 2 Начальное имя и имя приоритета: Thread2priority: 5thread 1 Начальное имя и приоритетное имя: Thread1priority: 6thread 2 Имя Имя и Приоритетное Имя: Thread2priority: 9main Метод I
Спасибо за чтение, я надеюсь, что это поможет вам. Спасибо за поддержку этого сайта!