Жизнь без блокировок: не только lock-free и не только коллекции Архитектуры, масштабируемость

Доклад принят в программу конференции
Андрей Гончаров
Центр Речевых Технологий

В промышленной разработке с 2006 года. Начинал с C/C++, но довольно быстро ушел в мир .NET. Работал в различных компаниях от стартапов до крупных, вроде Лаборатории Касперского. Спектр задач, которые приходилось решать, также довольно широк — от численных расчетов до распределенных систем.

telegram: @a_cross
e-mail: goncharov.andrey.v@gmail.com
Станислав Сидристый
ЦРТ

Разработчик с 15-летним опытом как .NET-разработки, так и C++, C, Asm, Groovy. Архитектор по должности.

skype: stanislav.sidristyi
telegram: @sidristij
электропочта: sunex.development@gmail.com
Тезисы

Большой процент разработчиков привык к синхронизациям на основе блокировок, но это ведет к гонке, взаимоблокировке и может серьезно снижать производительность. Чтобы получить максимальное преимущество от параллелизации, надо стремиться к коду, свободному от блокировок.

Wait-Free- и lock-free-алгоритмы для некоторых задач могут быть гораздо эффективнее. Но если первое — это совсем редкие случаи, то lock-free-алгоритмы и структуры на их основе сегодня уже достаточно изучены и имеют множество реализаций.

Из доклада вы узнаете:
* о постановке ТЗ на выбор lock-free-структуры данных;
* как они устроены и на основе каких алгоритмов работают;
* как разработать свой собственный алгоритм lock-free;
* и как его протестировать.

Асинхронное программирование, реактивное программирование
,
Архитектурные паттерны
,
Оптимизация производительности
,
Алгоритмы и их сравнение

Другие доклады секции Архитектуры, масштабируемость