Жди своего счастья без блокировки!
Алгоритмы без ожидания, написанные с использованием volatile переменных и операций compare-and-set позволяют увеличить масштабируемость многопоточного кода под нагрузкой и избегать взаимной блокировки. Часто необходимо не просто иметь структуры данных, общие для нескольких потоков (такие как кэши часто используемых сущностей), но и ждать тех или иных событий от других потоков (появление элемента в очереди, определенного события и тому подобное).
В этом докладе будет рассказано как синхронизация без блокировки совмещается с необходимостью реализовать ожидание. Будут подробно рассмотрены (с примерами) предоставляемые для этого механизмы в Java: LockSupport.park и AbstractQueuedSynchronizer.
занимается профессиональной разработкой программного обеспечения для биржевой и брокерской деятельности более 15 лет. В роли технического директора в компании Devexperts, участвует в разработке торговых платформ и терминалов для ведущих брокеров мира.
Будучи экспертом по высокопроизводительной обработке и распространению больших объемов данных и по вопросам оптимизации производительности на современных архитектурах, Роман регулярно выступает с соответствующими докладами на различных конференциях. Является экспертом по платформе Java.
В 2000 году Роман с отличием закончил СПбГУ ИТМО, где в настоящее время преподает курс параллельного и распределенного программирования. Во время учебы в университете участвовал в международных командных соревнованиях студентов по программированию ACM ICPC в составе команды ИТМО. С 1997 года и по настоящее время является председателем жюри соревнований Северо-восточного Европейского Региона (NEERC) ACM.
Презентация
Видео
Все доклады