Page 242 - 6571
P. 242
ку може бути змінений в процесі його виконання. Метод isD
emon() повертає true, якщо потік є демоном, і false, якщо це
звичайний потік.
2.2 Порядок виконання роботи
1. Ознайомитися із теоретичними відомостями до лаборатор-
ної роботи.
2. Створити два потоки із різними іменами та різними пріори-
тетами.
3. У першому потоці реалізувати алгоритм підрахунку n чи-
сел Фібоначчі, а у другому – решето Ератосфена для знахо-
дження n простих чисел.
4. Зробити так, щоб після кожної операції знаходження ново-
го числа потік звільняв «монітор» для виконання іншого
потоку.
5. Створити службовий потік-демон, який би виводив стан
кожного із потоків не демонів.
6. Зробити так, щоб головний потік завжди завершувався
останнім у програмі (окрім потоку-демона).
7. Після завершення усіх потоків (окрім потоку-демона) при-
спати головний потік на 5 секунд.
8. Доказати, що програма припиняє своє виконання незважа-
ючи на те, чи є завершеним потік-демон.
9. У звіті до лабораторної роботи представити знімки робочої
програми.
10. Оформити звіт та зробити висновки по роботі.
2.3 Контрольні запитання
1. У яких станах можуть перебувати потоки у мові Java?
2. Яким чином можна дізнатися поточний стан потоку?
3. Яким чином можна призупинити виконання певного пото-
ку на вказаний проміжок часу?
4. У якому випадку може бути згенерований виняток Inte
ruptException?
5. Чи відрізняються методи interrupted() та isInter
upted()?
6. Яким чином зробити так, щоб певний потік гарантовано за-
вершав своє виконання останнім?
241