Головний потік в java

Головний потік в java

При запуску програми автоматично створюється головний потік - потік, який виконує метод main (), тобто головний метод програми. В рамках головного потоку можуть створюватися (запускатися) дочірні потоки (підпотоків), в яких, в свою чергу також можуть запускатися потоки, і так далі. Головний потік від інших потоків відрізняється тим, що створюється першим.

Програма 1.1:

В результаті виконання програми отримуємо таку послідовність повідомлень в командному вікні:

Тепер розглянемо і проаналізуємо програмний код. Неприємності починаються прямо з сигнатури методу main (). При описі цього методу ми використовували інструкцію throws InterruptedException, яка означає, всього-на-всього, що головний метод може викидати необроблюваних виключення класу InterruptedException (переривання потоку).

Необхідність в такій інструкції в сигнатурі методу викликана тим, що в тілі методу викликається статичний метод sleep () класу Thread.

Командою Thread t в тілі методу оголошується об'єктна змінна, в яку потім запишемо посилання на головний потік програми (точніше, на об'єкт головного потоку). Час затримки у виконанні головного потоку (в мілісекундах) записується в змінну time.

В результаті «виведення на екран» об'єкта потоку з'являється таке повідомлення: ключове слово Thread і потім в квадратних дужках три параметра: ім'я потоку, його пріоритет і ім'я групи потоку. За замовчуванням ім'я головного потоку main, пріоритет дорівнює 5, а ім'я групи потоку теж main. Тобто для головного потоку повідомлення матиме вигляд Thread [main, 5, main].

Групи потоків - групи, в які об'єднуються потоки для підвищення рівня керованості та ступеня безпеки. Деякі дії можна виконувати відразу для всіх потоків групи.

Командою t.setName ( «Це головний потік») змінюється ім'я потоку. Зчитування пріоритету потоку виконується інструкцією int p = t.getPriority (). Потім за допомогою команди t.setPriority (++ p) на одиницю збільшується значення пріоритету процесу. Потім знову виконується висновок свденія про потік, для чого використовуємо команду System.out.println (t).

Після всіх цих дій на деякий час припиняємо виконання головного потоку (виконання програми). Використовуємо при цьому команду Thread.sleep (time), попередньо вивівши на екран текстове повідомлення про те, що потік буде припинений. Перед завершенням роботи програми виводимо текстове повідомлення «Робота програми завершена!».

Статичний метод sleep () викликався через ім'я класу Thread. Те ж можна було зробити через об'єктну змінну t. Звертаємо також увагу на те, що між висновком останнього і передостаннього повідомлень в командному вікні проходить певний час (точніше 2500 мілісекунд, або 2.5 секунди).

Leave a Reply