Жизнь без блокировок: не только lock-free и не только коллекции Архитектуры, масштабируемость
В промышленной разработке с 2006 года. Начинал с C/C++, но довольно быстро ушел в мир .NET. Работал в различных компаниях от стартапов до крупных, вроде Лаборатории Касперского. Спектр задач, которые приходилось решать, также довольно широк — от численных расчетов до распределенных систем.
e-mail: goncharov.andrey.v@gmail.com
Архитектор и разработчик с 15-летним опытом как .NET-разработки, так и C++, C, Asm, Groovy.
telegram: @sidristij
электропочта: sunex.development@gmail.com
Большой процент разработчиков привык к синхронизациям на основе блокировок, но это ведет к гонке, взаимоблокировке и может серьезно снижать производительность. Чтобы получить максимальное преимущество от параллелизации, надо стремиться к коду, свободному от блокировок.
Wait-Free- и lock-free-алгоритмы для некоторых задач могут быть гораздо эффективнее. Но если первое — это совсем редкие случаи, то lock-free-алгоритмы и структуры на их основе сегодня уже достаточно изучены и имеют множество реализаций.
Из доклада вы узнаете:
* о постановке ТЗ на выбор lock-free-структуры данных;
* как они устроены и на основе каких алгоритмов работают;
* как разработать свой собственный алгоритм lock-free;
* и как его протестировать.