Вступ до життєвого циклу теми на Java

Нитка переживає численні фази життєвого циклу. Такі, як, нитка приходить у світ, починається, пробігає і після цього проходить. Наступна схема пояснює повний життєвий цикл нитки.

  • Конструктор ниток створює нитку через новий стан.
  • Виклик методу start в Thread може зробити це через стан, який можна виконати.
  • Планувальник ниток щодо Java запускає цей потік, коли процесор отримує.
  • Коли потік перейде в заблокований стан, він знову запуститься, оскільки повертається до стану, який можна виконати.
  • Якщо метод очікування позначається як потік перейде до очікування стану, він перейде до стану, який можна виконати незабаром після того, як він стане повідомленням у всій Інформі, а також метод сповіщення всіх.
  • Після закінчення методу запуску нитка закінчується.

Що таке нитка?

Нитка визначається на рівні Операційної системи. І мова Java, як і всі інші мови, використовує, використовує послугу, яку надає Операційна система. З точки зору розробника, потік - це набір інструкцій, які ми збираємось написати нашу заявку та виконати певним чином. Сама програма може складатися з декількох потоків. Одночасно можуть виконуватися різні нитки. JVM (віртуальна машина Java) працює з декількома потоками. Існують нитки для збору сміття. Є нитки для компілятора Just in Time та інші технічні нитки.

Стани життєвого циклу теми на Яві

Нижче наведено різні стани життєвого циклу теми на Яві:

1. Нове: нова нитка починає їх життєвий цикл всередині нового стану. Він продовжує залишатися з цим станом до того, як програма починає нитку. Крім того, він відомий як створений потік.

2. Виконання: Після того, як нещодавно народилася нитка може початися, нитка перетворюється на розгорнуту. Нитка з цим станом вважається виконанням їх процесу.

3. Очікування: Іноді перехід потоку до стану очікування навколо, навіть якщо нитка чекає іншого потоку для виконання дії. Потік переходить, повертаючись у стан, який можна виконати, лише якщо додатковий потік вказує на очікування очікування, яке продовжує працювати.

4. Тимчасове очікування: Прогонована нитка може легко консервувати певний час, очікуючи, коли стан отримає певний інтервал часу. Потік із цим станом переходить, повертаючись у стан, який можна виконати, як тільки цей термін закінчується, або якщо подія, яку він справді чекає, станеться.

5. Припинено: Нитка, що може бути запущена, переходить у стан, що припиняється, оскільки вона виконує своє завдання, або припиняється.

Як створити тему на Java?

Найбільш основний спосіб створення потоку в Java - це використання Runnable Pattern. Спочатку потрібно створити екземпляр інтерфейсу Runnable, що дуже легко; існує лише один метод реалізації. Потім передаємо цей екземпляр конструктору класу Thread. І тоді ми просто називаємо метод start () створеного цього об’єкта потоку, щоб запустити новий потік, який збирається виконати завдання, загорнене в наш об’єкт Runnable.

Отже, спочатку ми створюємо екземпляр Runnable. Існує лише один метод реалізації, який називається методом run (). Це шаблон Java 7 для цього з екземпляром анонімного класу. Але ми також можемо використовувати лямбда-вираз для реалізації Runnable, оскільки в інтерфейсі Runnable існує лише один метод.

Створимо теми на дуже простих прикладах

Ми побачимо, що може піти не так із умовами перегонів, що з несинхронізованим кодом, який слід синхронізувати, і ми будемо виправляти наш код за допомогою синхронізації. Цей перший приклад дуже простий, він дуже базовий. Йдеться просто про створення завдання.

Вихід:

Завдання - це примірник інтерфейсу Runnable, назвемо його запущеним, і ми можемо реалізувати цей інтерфейс, використовуючи лямбда-вираз. Це завдання задається новій темі та виконується в контексті цього потоку. Тож ми просто збираємося роздрукувати ім’я теми, яка виконує це завдання. Я бігаю в… Thread.currentThread () - це статичний метод класу Thread, який повертає потік, що виконує поточне завдання. І нам просто потрібно викликати getName () на цьому об'єкті потоку, щоб повернути ім'я потоку. Потім після того, як ми створимо екземпляр Thread t = new Thread. Передача цього параметра, який можна виконати як параметр. Отже, цей потік виконує цю частину коду. І запустити його. t.start () це метод start (), який нам потрібно викликати. Ми також можемо зробити чітке ім’я цієї теми за допомогою t.setName ("Моя нитка"). І тепер ми можемо виконати цей код. Тепер замість методу call (() call) ми викликаємо метод run (), і якщо ми запустимо цей код, проблема полягає в тому, що завдання виконано правильно, але воно не виконується в створеній нами темі. Він виконується в основному потоці, який є потоком, що виконує основний метод. Тож цей метод run () не повинен називатися, якщо ми хочемо запустити новий потік.

Вихід:

Методи життєвого циклу теми на Java

Методи, описані просто Thread, представлені в табл.

Типи данихІмена методу нитки
Рядок

getName ()

Повернути ім'я цієї теми

intотримати пріоритет ()

Повертає пріоритет потоку

булеваживий()

Тести, якщо ця нитка все ще працює

порожнечаjoin ()

Чекає, коли ця нитка вмирає (припиняється)

порожнечаrun ()

Щоразу, коли цей потік був побудований за допомогою індивідуального об'єкта Runnable, після якого зазвичай називається метод запуску об'єкта Runnable; інакше цей метод не поверне нічого. Кожного разу, коли клас потоку може бути розширений, а також метод run () перезавантажений під час підкласу, тоді називається метод overdden run ().

порожнечаsetName ( назва рядка )

Змінення імені за допомогою цього потоку стане порівнянним з назвою аргументу.

статична порожнеча

сон ( довгий міліс ) кидає Перерваний / Виняток
Викликає поточну нитку для відпочинку
необхідну кількість мілісекунд.
статична порожнечасон ( довгий міліс, int nanos ) підкидає Перерванеприйняття

Це змушує поточну нитку спати (припиняє виконання) протягом необхідної кількості мілісекунд, а також певної кількості наносекунд.

порожнечаstart ()

Запускає ці потоки для запуску виконання; віртуальна машина Java викликає метод запуску цього потоку.

статична порожнечаурожай ()

Запускає поточний об'єкт потоку на короткий час призупинити та дозволити виконання додаткових потоків.

статична ниткаcurrentThread ()

Повертає згадку про поточно виконуваний об'єкт потоку.

Висновок

  • Простий для початку використання ниток, надзвичайно важко зрозуміти.
  • Проектування класів, що містять методи, захищені від потоку, є складним завданням.
  • Прочитайте: JavaDoc, щоб отримати клас java.lang.Thread

Рекомендована стаття

Це був посібник з життєвого циклу теми на Java. Тут ми обговорюємо, що таке нитка? і різні стани життєвого циклу ниток разом із створенням ниток в java. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Рамки в Java
  2. Зоряні візерунки на Яві
  3. Об’єднання Сортування в Java
  4. Кращі компілятори Java
  5. Статичний метод в PHP