Александр Ланцов
Компания: Мир Plat.Form
Несмотря на то, что новые режимы упорядочивания доступов к памяти стали доступны еще с выходом JDK 9, немногие разработчики знакомы с ними. Хотя эти семантики все еще не имеют формального описания в модели памяти Java, они широко используются в популярных многопоточных библиотеках: JCTools, Disruptor, Agrona, Aeron и многих других. Поэтому для изучения исходного кода этих проектов нужно понимать существующие режимы упорядочивания.
Но даже для исключительно прикладных разработчиков-пользователей этих библиотек понимание свойств этих режимов позволяет осознанно подходить к выбору используемой реализации многопоточных структур данных. И все это может увеличить производительность всей системы.
В докладе последовательно рассматриваются все доступные на данный момент режимы: plain, opaque, release-acquire, volatile. Для каждого показаны его высокоуровневые свойства и примеры использования.
Доклад будет интересен всем, кто интересуется многопоточным программированием, моделями памяти и популярными lock-free библиотеками.
Компания: Мир Plat.Form
Компания: Querify Labs