18 апреля 2020 г.
в Санкт-Петербурге и 16 мая в Москве.
пройдет седьмая мини-конференция по платформе .
NET CLRium #7 .
На этот раз мы будем говорить и практиковать многопоточный код. Как и в прошлый раз, все отчеты будут следовать единой повествовательной линии.
В шестом CLRium мы стали более подкованы в теории и узнали много нового о планировщике потоков, блокировках и неблокирующих алгоритмах.
В платформе .
NET мы изучили контексты синхронизации, планировщики задач, как работают сами задачи, async/await и типичные ошибки при ее использовании.
Мы изучили все, чтобы уверенно приступить к работе над практическими задачами.
В CLRium #7 мы перейдем к упражняться .
Наша программа наконец-то готова: мы разработали матрицу отчетов, которые структурированы таким образом, что последующие отчеты логически вытекают из предыдущих.
А помимо самих докладов, по вашему желанию, вам будет предоставлена практическая работа на дому, в ходе которой вы приобретете опыт совместной работы над задачами: в группах по несколько человек (под руководством координатора).
Планируя семинар, мы решили пойти на эксперимент: ввести полноценную практику.
Ведь можно долго говорить о том, как распараллеливать алгоритмы, но так и не начать этим заниматься.
С одной стороны страшно, а с другой — не было задач понять, можно ли это распараллелить или нет. Поэтому линия нашего семинара будет следующей: Архитектурный блок докладов:
- Начнем с самого высокого уровня : архитектура системы в целом.
С высоты птичьего полета мы научимся принимать решения на самом высоком уровне.
Что нам следует параллельно использовать с известными решениями вроде RabbtMQ, а что следует делать самостоятельно.
Решим вопросы с архитектурной точки зрения;
- Далее мы будем научитесь прогнозировать производительность кода если мы все же решим сделать код многопоточным.
Согласитесь: важно иметь точное представление о конечном результате, прежде чем торопиться что-либо делать;
- После того, как мы разработали наши алгоритмы, нам нужно понять, что мы получили : Проанализируйте производительность нашего кода.
Попробуй это.
Мы изучим это в третьем отчете;
- Следующий вопрос - научитесь видеть решение проблемы .
Те.
Исходя из самой задачи, вы уже примерно можете понять, как мы будем распараллеливать наш код. Этого можно добиться, изучив ряд существующих решений: в некотором смысле шаблонов, с помощью которых можно легко получить готовое решение из постановки задачи;
- Разобравшись с архитектурными вопросами, начнем погружаться в разработка стратегии борьбы с блокировкой .
Блокировка важна, и ее понимание приведет вас к высокопроизводительному коду;
- Практика разработки и анализа неблокирующих алгоритмов - наша следующая тема.
Работая в паре, блокирующие и неблокирующие алгоритмы дадут вам максимальную загрузку процессора при максимально полезных вычислениях;
- В отчете " Работа в модели async/await: полностью и частично асинхронный код «Мы ответим на многие вопросы, которые пугают разработчика: как архитектурно правильно запустить async/await-код? Если библиотека или какой-то код использует async/await, что должен делать вызывающий объект? Все ли вызывающие процессы выполняют асинхронный режим? Как остановить это? И многие другие.
- Также мы Раскроем вопросы использования библиотеки Rx.NET. : linq-подобная библиотека для обработки потоковых данных (например, обработки сообщений, в том числе из UI).
Мощнейшая библиотека, в неопытных руках становится оружием массового уничтожения кода.
Но в руках тех, кто ее знает, она становится супер-инструментарием, позволяющим решать проблемы в очень короткие сроки.
- И последняя тема - наконец-то опубликованная библиотека JetBrains.Lifetimes .
Я немного говорил об этом ранее.
Но теперь можно рассказать, во-первых, гораздо подробнее, а во-вторых, в многопоточной среде.
NET.
Контакты
- Веб-сайт CLRium #7: Параллелизм и параллелизм на практике
-
[email protected] -
+7 (921) 948-16-08
NET #Параллельное программирование #clrium
-
Анализ Эффективности Интернет-Пиара
19 Oct, 24 -
Цифровые Мероприятия В Москве С 23 По 29 Мая
19 Oct, 24