Важко уявити сучасний додаток працюючий в блокуючому режимі (яке виконується в однопоточному середовищі), як правило програмісти намагаються «вичавити» максимум із заліза використовуючи розпаралелювання (concurrent programming or multithreading).
Multithreading — одна з найскладніших тем для розуміння в Java, оскільки моделювання і дебаг проблеми не завжди представляється можливим, тому програмісти намагаються використовувати фреймворки і бібліотеки для вирішення типових завдань і часто не замислюються як все ж це працює. Однак, час від часу доводиться стикатися з неординарними завданнями і тут виникає безліч питань: З чого почати? Як тестувати? Які стандартні засоби JDK дозволяють вирішувати ту чи іншу задачу? І т.д.
У цій доповіді я постараюся відкрити завісу таємничого світу Java Concurrency.
Про спікера:
Борис Лепешенков
Team Leader / Senior Java Developer YayPay
Team Lead, розробник програмного забезпечення. Спеціаліст з досвідом 8 років в області розробки бекенд рішень. Брав активну участь в проектуванні, побудові та розробці ентерпрайз систем, а також впровадженні передових Agile практик в класичних і cross-functional командах.
Технічний досвід: Back-end розробка, а також розробка front-end з використанням Java frameworks (GWT, ZKOSS). Створення архітектури, а так же імплементація комплексних рішень для потреб замовника з подальшою інтеграцією в існуючі екосистеми програмного забезпечення; Рефакторинг, профайлинг визначення та усунення bottle necks в існуючих системах; Побудова фреймворків для спрощення розробки та тестування.