Введение
Содержание
- 1 Введение
- 2 Concurrency + Java Memory Model
- 2.1 Теория параллельного программирования для практиков (Роман Елизаров)
- 2.2 Модель памяти Java: близкие контакты третьей степени (Руслан Черёмин)
- 2.3 Динамическое обнаружение гонок в многопоточных Java-программах (Дима Цителов)
- 2.4 Оптимизация производительности Java-приложений: детали (Шипилев и Куксенко)
- 3 We need to go deeper (c)
Вот тут есть хорошая вводная статья по Java Memory Model
Почему многопоточность это сложно.
Concurrency + Java Memory Model
Теория параллельного программирования для практиков (Роман Елизаров)
Введение в разработку параллельных алгоритмов от нашего гуру Ромы Елизарова
Модель памяти Java: близкие контакты третьей степени (Руслан Черёмин)
О том как правильно все таки писать многопоточный код и Java Memory Model.
Динамическое обнаружение гонок в многопоточных Java-программах (Дима Цителов)
Очень интересная презентация утилиты для поиска ошибок в сложном многопоточном коде на основе статистики ее работы. Запускается как java agent и модифицирует байт код на лету, на выходе — текстовый файл с описанием найденных проблем. Ошибки ищутся построеним матрицы happens-before переходов и анализом какие области памяти мы меняем без корректной синхронизации. Лежит вот тут https://code.devexperts.com/display/DRD/Documentation
Оптимизация производительности Java-приложений: детали (Шипилев и Куксенко)
Цена многопоточных примитивов. Часть I.
Часть II.
We need to go deeper (c)
Прагматика Java Memory Model (Шипилев)
Осторожно это видео отнимет 2 часа Вашей жизни. Но это самый детальный и познавательный доклад лично для меня — хотя ничего нового не узнаешь, но остается ощущение «понимания» почему же оно так работает :).
Расчленяя многопоточность в HotSpot (Глеб Смирнов)
Что такое memory barrier, как работают кеши процессора и протоколы когерентности кешей, что именно делает hot spot чтобы java memory model работала
Bulletproof Java Concurrency (Шипилёв)
Доклад про опыт тестирования Concurrency в JDK/JVM, разного рода загадки и примеры