Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по ТРС.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
201 Кб
Скачать
☆

Завдання

  1. Розглянути, вiдкомпiлювати та запустити на виконання наведений приклад.

  2. З'ясувати принципи багатопоточної синхронiзацiї за допомогою глобальної змiнної.

  3. З'ясувати особливостi програмування та застосування методу глобальної змiнної.

class TestThread extends Thread {   String threadName;   CommonVariable parentClass;   TestThread( String name, CommonVariable c) {     threadName = name;     parentClass = c;     System.out.println( threadName + " - Created");   }   public void run() {     System.out.println( threadName + " - Start of Work");     while (parentClass.state != true) {       System.out.println( threadName + " - " + parentClass.state);       try {         Thread.sleep( 10);         }       catch (InterruptedException ie) {         }       }     System.out.println( threadName + " - " + parentClass.state);     System.out.println( threadName + " - End of Work");     }   } public class CommonVariable {   boolean state = false;   CommonVariable() {     state = false;     }   public static void main( String argc[]) {     System.out.println( "Main process started");     CommonVariable cv = new CommonVariable();     TestThread t1 = new TestThread( "First", cv);     TestThread t2 = new TestThread( "Second", cv);     TestThread t3 = new TestThread( "Third", cv);     t1.start();     t2.start();     t3.start();     System.out.println( "Main process: " + cv.state);     try {       Thread.sleep( 60);       }     catch (InterruptedException ie) {       }     cv.state = true;     System.out.println( "Main process: " + cv.state);     System.out.println( "Main process ended");     }   }

 

Iндивiдуальнi завдання до захисту роботи

  1. Зробити так, щоб другий процес робив циклiв бiльше за усi iншi.

  2. Зробити парну кiлькiсть процесiв. Хай кожен парний процес робить циклiв в двiчi бiльше нiж непарний.

  3. Створити три процеси. Зробити так, щоб другий процес завжди закiнчувався останнiм. Не змiнювати часи затримки. Використати додаткову загальну змiнну.

  4. Створити три процеси. Зробити так, щоб перший процес припиняв роботу другого, а другий третього. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  5. Створити три процеси. Зробити так, щоб перший процес припиняв роботу усiх iнших процесiв. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  6. Створити три процеси. Зробити так, щоб перший процес завжди припиняв роботу другим. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  7. Створити три процеси. Зробити так, щоб перший процес завжди припиняв роботу пiсля другого. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  8. Створити три процеси. Зробити так, щоб головний процес закiнчувався тiльки пiсля того, як припинять роботу усi його дочирнi процеси. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  9. Створити три процеси. Зробити так, щоб головний процес закiнчувався пiсля будь-якого процесу, який закiнчить роботу першим (тобто завжди другим). Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  10. Створити три процеси. Зробити так, щоб головний процес закiнчувався завжди пiсля другого процесу (процесу номер 2). Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  11. Створити три процеси. Зробити так, щоб головний процес закiнчувався завжди третiм (пiсля буд-яких двох дочирнiх процесiв). Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  12. Створити п'ять процесiв. Зробити так, щоб головний процес завжди закiнчувався перед останнiм. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  13. Створити п'ять процесiв. Зробити так, щоб головний процес завжди закiнчувався тодi, коли активними залишаються ще два процеси. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  14. Створити п'ять процесiв. Зробити так, щоб першими закiнчили свою роботу усi процеси з непарними номерами (у довiльному порядку). Батькiвський процес повинен завершитися першим. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  15. Створити п'ять процесiв. Зробити так, щоб усi процеси з парними номерами закiнчили свою роботу (у довiльному порядку) тiльки пiсля закiнчення роботи батькiвського процесу. Батькiвський процес повинен завершитися пiсля завершення останього процесу з непарним номером. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  16. Створити п'ять процесiв. Зробити так, щоб усi процеси з парними номерами закiнчили свою роботу (у довiльному порядку) тiльки пiсля закiнчення роботи одного з процесiв з непарним номером. Батькiвський процес повинен завершитися пiсля завершення останього процесу з непарним номером. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  17. Створити п'ять процесiв. Зробити так, щоб усi процеси з непарними номерами закiнчили свою роботу (у довiльному порядку) тiльки пiсля закiнчення роботи двох процесiв з парними номерами. Батькiвський процес повинен завершитися пiсля завершення останього процесу з непарним номером. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  18. Створити п'ять процесiв. Зробити так, щоб усi процеси з парними номерами закiнчили свою роботу (у довiльному порядку) тiльки пiсля закiнчення роботи одного з процесiв з непарним номером. Батькiвський процес повинен завершитися першим. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  19. Створити п'ять процесiв. Зробити так, щоб усi процеси з непарними номерами закiнчили свою роботу (у довiльному порядку) тiльки пiсля закiнчення роботи двох процесiв з парними номерами. Батькiвський процес повинен завершитися першим. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  20. Створити п'ять процесiв. Зробити так, щоб усi процеси з парними номерами закiнчили свою роботу (у довiльному порядку) тiльки пiсля закiнчення роботи одного з процесiв з непарним номером. Батькiвський процес повинен завершитися останнiм. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.

  21. Створити п'ять процесiв. Зробити так, щоб усi процеси з непарними номерами закiнчили свою роботу (у довiльному порядку) тiльки пiсля закiнчення роботи двох процесiв з парними номерами. Батькiвський процес повинен завершитися останнiм. Не змiнювати часи затримки. Використати додатковi загальнi змiннi.