Page 173 - 6571
P. 173
void myMethod() throws InterruptedException {
sleep(delay);
}
Запитання для самоперевірки
1. У чому проявляється вбудована підтримка багатопотоково-
сті у мові Java?
2. Що собою представляє модель циклу подій з опитуванням?
3. У чому полягає перевага багатопотокової моделі в порів-
нянні із моделлю на основі циклу подій?
4. В яких станах можуть перебувати потоки у програмі напи-
саній на мові Java?
5. Яку функціональну роль відіграє головний потік у мові J
va?
6. Як призупинити виконання потоку у мові Java на вказану
кількість мілісекунд?
7. Які існують способи створення нового потоку засобами
мови Java?
8. Для чого необхідно перевизначати метод run() і яке його
призначення?
9. У якому випадку відбувається переривання потоку у про-
грамі написаній на мові Java?
10. Яким чином у мові Java можна керувати процесом пере-
ривання потоку?
ЛЕКЦІЯ 19
КЕРУВАННЯ ЖИТТЄВИМ ЦИКЛОМ ТА
СИНХРОНІЗАЦІЯ
19.1 Використання методів isAlive() та join()
Як уже було згадано, найчастіше необхідно, щоб головний
потік завершувався останнім. У попередніх прикладах з методу
main() виконувався виклик методу sleep()із затримкою,
достатньою для того щоб гарантувати, що всі дочірні потоки
завершаться раніше головного. Однак дане рішення породжує
наступне питання: як один потік може знати про завершення
172