Важко уявити сучасний додаток працюючий в блокуючому режимі (яке виконується в однопоточному середовищі), як правило програмісти намагаються «вичавити» максимум із заліза використовуючи розпаралелювання (concurrent programming or multithreading).
Multithreading – одна з найскладніших тем для розуміння в Java так як моделювання і дебаг проблеми не завжди представляється можливим, тому програмісти намагаються використовувати фреймворки і бібліотеки для вирішення типових завдань і часто не замислюються як все ж це працює. Однак час від часу доводиться стикатися з неординарними завданнями і тут виникає безліч питань: З чого почати? Як тестувати? Які стандартні засоби JDK дозволяють вирішувати ту чи іншу задачу? І т.д.
У цій доповіді я постараюся відкрити завісу таємничого світу Java Concurrency.
