CLRium #6: Concurrency & Parallelism. Два дня: от процессора до async/await
Совсем скоро, 29–30 ноября в Санкт-Петербурге и 06–07 декабря — в Москве мы запустим шестой семинар по .NET. В рамках семинара мы полным ходом изучаем вопросы многопоточности, которые на самом деле очень и очень сложны. Программа немного меняется, но получается очень хардкорной для вас и волнительной — для нас. Я расширил описание уровня ОС до трёх слотов: теперь там можно будет почерпнуть:
- Кванты времени, их длину, выбор их длины, изменение настроек системы так, чтобы выбрать длину квантов времени
- Динамическое повышение приоритетов потоков и длин квантов в зависимости от разных условий: от признака нахождения окна на переднем плане до освобождения блокировок
- Разработка собственного планировщика UMS потоков
и многое другое. Кофе будет много.
Где будет проходить
В Санкт-Петербурге семинар поменял дислокацию и будет проходить почти в центре города: Арт-Пространстве ТКАЧИ. Мы арендуем весь этаж здания чтобы вы могли удобно разместиться, пообедать не выходя из здания и развлечься — в перерывах. Т.к. это — арт-пространство, там много всего интересного помимо самого семинара.
В Москве семинар будет проходить в ставшей традиционной Гостинице Салют. Выбор прост: место отлично себя зарекомендовало.
Пара слов о программе семинара
Программа первого дня
- Мы начнём со слоя операционной системы. 6 типов процессов, потоки, упомянем волокна (и объясним, почему их нет в .NET). Два больших доклада, которые по косточкам разложат всё, что есть в операционной системе;
- После операционной системы мы поговорим про механики CLR. Она имеет множество механизмов, на основании которых работает множество классов BCL;
- Далее вы пойдёте на обед, чтобы улегся первый слой информации;
- После обеда мы очень плотно возьмёмся за слой BCL. Тут и примитивы синхронизации. И сложность и важность сложности алгоритмов и контексты синхронизации. В общем, два добротнейших доклада. Уже на этом этапе вы почувствуете, что ваши вложения окупятся как минимум на текущем проекте, а в перспективе — на любом собеседовании;
- Третья тема первого дня — lock-free алгоритмы. Это — важнейшая часть наших знаний о многопоточке. Алгоритмы, которые работают без блокировок. И на мой скромный взгляд, их лучше всего не учить. Их надо понимать, как они работают. Этим мы и займёмся: для начала разберемся, как ставить самому себе ТЗ на выбор алгоритма исходя из требований. Далее разберем, как работают два алгоритма и, наконец, разработаем самостоятельно еще один.
Программа второго дня
Когда вы выспитесь (это необходимо сделать обязательно: мозг усваивает всю полученную информацию именно во время сна) и придёте на семинар, начнётся его вторая часть:
- Вводный доклад по асинхронным моделям APM и EAP в CLR/BCL. Кто сказал, что они устарели? Все новое — хорошо забытое старое, а значит старое нельзя забывать: к нему спираль развития еще не раз вернется;
- Функциональный подход к разработке асинхронного кода. Функциональщина — она не только в F#. Мы будем разбираться как так писать код, чтобы его можно было легко распараллелить и чтобы это влекло за собой наименьшее количество как блокировок, так и аллокаций;
- Опять же, чтобы сбавить жар в наших головах мы отдохнём за обедом. Пообщаемся, сменим контекст.
- После обеда мы пойдём полировать пройденные знания. Это будут: PLINQ, async/await, механизмы их работы.
Обосновать работодателю
Если Вам захочется сэкономить личные средства и обратиться к работодателю, а как это сделать, вы не знаете, ниже я подготовил небольшой текст, который можно использовать, отправив письмо руководству. Для тех, кто его уже видел, мы спрятали его содержимое под спойлер:
Добрый день,Юрий Иванович, сегодня я хотел бы обратиться к Вам с небольшой просьбой. В нашем городе проходит очень важный семинар, который мне хотелось бы посетить. Тема семинара коррелирует с нашими задачами и сильно поможет в их решении: это многопоточка и конкурентность. У меня, как и у каждого работника много задач как на работе, так и дома. И поэтому очень сложно выкроить время на саморазвитие: дома хочется всё-таки заниматься задачами жизненными, а на работе — работой. Поэтому наличие вот такого семинара — это хорошая возможность выкроить время на то, чтобы выслушать и воспользоваться материалом, который кто-то за тебя разжевал и рассказал только самое важное.
Семинар длится два дня: 29–30 ноября / 06–07 декабря. Но, с одной стороны материал который будет выдан за два дня при обычном изучении по множеству источников, отнял бы как минимум месяц, а с другой, даты семинара выбраны довольно удачно: все предновогодние авралы, если такие будут, начнутся позже. Также, за новогодние праздники я смогу прослушать все доклады в записи, что укрепит мои знания.
Есть его анонс на Хабре: https://habr.com/ru/company/clrium/blog/460635/
И сам семинар: CLRium
Осталась только треть от всех билетов. Ждём вас!