Skip to content

13. Паралельне виконання. Multithreading


Мета

  • Ознайомлення з моделлю потоків Java.
  • Організація паралельного виконання декількох частин програми.

Вимоги

  1. Використовуючи програми рішень попередніх задач, продемонструвати можливість паралельної обробки елементів контейнера: створити не менше трьох додаткових потоків, на яких викликати відповідні методи обробки контейнера.

  2. Забезпечити можливість встановлення користувачем максимального часу виконання (таймаута) при закінченні якого обробка повинна припинятися незалежно від того знайдений кінцевий результат чи ні.

  3. Для паралельної обробки використовувати алгоритми, що не змінюють початкову колекцію.

  4. Кількість елементів контейнера повинна бути досить велика, складність алгоритмів обробки колекції повинна бути зіставна, а час виконання приблизно однаковий, наприклад:

    • пошук мінімуму або максимуму;
    • обчислення середнього значення або суми;
    • підрахунок елементів, що задовольняють деякій умові;
    • відбір за заданим критерієм;
    • власний варіант, що відповідає обраній прикладної області.

Рекомендації

  1. Java Tutorials: Concurrency.

  2. Tutorial: Java concurrency (multi-threading).