
Варіанти для індивідуальної роботи.
Варіант 1. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці цілих чисел двома потоками.
Перший потік збільшуватиме кожен парний елемент у парних рядках матриці на 1, другий - знаходитиме кількість рядків, у яких всі елементи парні.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 2. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці дійсних чисел двома потоками.
Перший потік замінятиме кожен додатний елемент масиву на 0, другий – виводитиме на екран рядки, у яких є принаймні один нульовий елемент.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 3. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці двома потоками.
Перший потік замінятиме кожен додатний елемент масиву на протилежний за знаком, другий - знаходитиме кількість стовбців, у яких немає жодного додатного елемента.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 4. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці двома потоками.
Перший потік замінятиме кожен від’ємний елемент масиву на квадрат цього елемента, другий - знаходитиме кількість рядків, у яких немає жодного від’ємного елемента.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 5. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці двома потоками.
Перший потік замінятиме кожен парний елемент масиву на значення сусіднього елемента, другий - знаходитиме кількість рядків, у яких ідуть підряд принаймні два однакових числа.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 6. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці дійсних чисел двома потоками.
Перший потік замінятиме кожен додатний елемент масиву на 0, другий – виводитиме на екран рядки, у яких є принаймні один нульовий елемент.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 7. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці двома потоками.
Перший потік замінятиме кожен парний елемент масиву на значення сусіднього елемента, другий - знаходитиме кількість рядків, у яких ідуть підряд принаймні два однакових числа.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 8. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці цілих чисел двома потоками.
Перший потік збільшуватиме кожен парний елемент у парних рядках матриці на 1, другий - знаходитиме кількість рядків, у яких всі елементи парні.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 9. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці двома потоками.
Перший потік збільшуватиме кожен парний елемент масиву у непарних рядках матриці на 1, другий - знаходитиме кількість рядків, у яких немає жодного парного елемента.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 10. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці двома потоками.
Перший потік замінятиме кожен додатний та кратний 3 елемент масиву, який знаходиться у парному рядку матриці, на 0, другий - знаходитиме кількість рядків, у яких немає жодного додатного та кратного 3 елемента.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 11. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці двома потоками.
Перший потік замінятиме кожен парний елемент масиву на значення другого елемента поточного рядка, другий - знаходитиме кількість рядків, у яких принаймні один елемент дорівнює другому елементу даного рядка.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.
Варіант 12. Використовуючи об’єкти синхронізації реалізувати наступні задачі для роботи з потоками:
1) Написати програму для одночасного опрацювання матриці двома потоками.
Перший потік замінятиме кожен додатній елемент масиву на значення передостаннього елемента поточного рядка, другий - знаходитиме кількість рядків, у яких принаймні один елемент дорівнює передостанньому елементу даного рядка.
2) Правильно розставити події для синхронізації потоків.
3) Порівняти результати з використанням синхронізації та без синхронізації. Пояснити результат.