CLRium #6: Парный доклад про Lock-Free, много теории и практически-полезных знаний

в 18:49, , рубрики: .net, C#, clrium, devday, Блог компании Семинары Станислава Сидристого, параллельное программирование, Программирование

Совсем скоро, 29-30 ноября в Санкт-Петербурге и 06-07 декабря — в Москве мы запустим шестой семинар по .NET. На этот раз — по теме многопоточки и конкурентности. Мы уже писали об этом пару раз на Хабре, но сегодня — День Программиста и есть отличный повод дать вам всем комплимент: скидку на его посещение.

CLRium #6: Парный доклад про Lock-Free, много теории и практически-полезных знаний - 1 У меня для вас есть новость: мы с Андреем Гончаровым, моим хорошим другом и соратником решили сделать для вас доклады по lock-free, выступая вместе. Мне показалось, это должно сильно оживить атмосферу выступления. Андрей сейчас закапывается в эту тему так, что иногда его приходится даже останавливать: доклады будут очень интересными и полезными.

CLRium #6: Парный доклад про Lock-Free, много теории и практически-полезных знаний - 2 Юрий Власов, мой второй коллега нашёл библиотеку Microsoft.VisualStudio.Threading, которую с удовольствием использует в проектах. Он решил поведать вам о её богатых возможностях и применимости в различных задачах. Этот доклад отлично завершит тему lock-free, закрыв вопросы теории, оценки сложностей, анализа существующих алгоритмов и построения собственных вопросом хорошей реализации в виде промышленной библиотеки.

В честь Дня Программиста мы ввели промокод: CLRiumDevDay. Он действует всего-лишь два дня, когда можно забронировать билеты. Далее — вы имеете 5 дней на оплату билетов.
Первый день — скидка = 25%, второй = 15%

CLRium #6: Парный доклад про Lock-Free, много теории и практически-полезных знаний - 3

Где будет проходить

В Санкт-Петербурге семинар поменял дислокацию и будет проходить почти в центре города: Арт-Пространстве ТКАЧИ. Мы арендуем весь этаж здания чтобы вы могли удобно разместиться, пообедать не выходя из здания и развлечься — в перерывах. Т.к. это — арт-пространство, там много всего интересного помимо самого семинара.

CLRium #6: Парный доклад про Lock-Free, много теории и практически-полезных знаний - 4

В Москве семинар будет проходить в ставшей традиционной Гостинице Салют. Выбор прост: место отлично себя зарекомендовало.

CLRium #6: Парный доклад про Lock-Free, много теории и практически-полезных знаний - 5

Пара слов о программе семинара

Программа первого дня

  • Мы начнём со слоя операционной системы. 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

Ждём вас!

Автор: sidristij

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js