Выполнен Krocodl в 2010 году. — Версия 2015. — 40 с.
Русскоязычный дайджест известной книги «
Java Concurrency in Practice» от Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea.
Введение
Основы
Сложные объекты
Основные составные блоки
Состояния нитей
Блокировка методов и прерывание блокировки
Основные примитивы
CopyOnWriteArrayList
ConcurrentHashMap
ConcurrentSkipListMap и ConcurrentSkipListSet – конкурентные аналоги TreeMap и TreeSet
DelayQueue
BlockingQueue
Deque и Blocking Deque
Latches – защелки или щеколды
FutureTask
Semaphores
Barriers
Эволюция дизайна на примере построения кэша результатов вычисления дорогой функции
Executor framework
Основа фреймворка интерфейс Executor
Расширение Executer в виде ExecutorService
Прерывание задач и остановка системы
Использование пулов нитей
ThreadPoolExcutor служит основой
GUI приложения
Мультипоточные проблемы
Performance vs Scalability
Тестирование
Явная блокировка
Основной интерфейс – Lock
ReadWriteLock интерфейс
Построение примитивов синхронизации
Object.wait / Object.notify - condition queue или очередь нитей
Condiction – явная очередь нитей
Атомарные переменные и неблокирующая синхронизация
AtomicInteger
AtomicReferenceFieldUpdater
AtomicBoolean
Модель памяти - JMM