Асинхронность и многопоточность в C#. Продвинутый уровень

На этом курсе вы научитесь создавать высокопроизводительные многопоточные и асинхронные приложения на C#, правильно работать с async/await, Task Parallel Library (TPL), асинхронными потоками, неизменяемыми и конкурентными коллекциями, что позволит вам строить масштабируемые системы без deadlock'ов, гонок данных и…
Средний уровень
Сертификат Stepik

Чему вы научитесь

  • Разберетесь с основными понятиями тематики курса: многопоточностью, конкурентностью, асинхронностью и параллелизмом
  • Изучите устройство и особенности работы с потоками исполнения (Thread) и пулом потоков (ThreadPool) в C#
  • Научитесь использовать конструкции синхронизации пользовательского режима (Interlocked, SpinLock, SpinWait), режима ядра (Mutex, Semaphore, AutoResetEvent, ManualResetEvent) и гибридные конструкции (Monitor / lock, SemaphoreSlim и др.)
  • Освоите современный подход к асинхронной разработке на C#, познакомитесь с классом Task, узнаете как запускать асинхронные задачи
  • Глубоко изучите паттерн TAP (Task-based asynchronous pattern): работу с исключениями в задачах, жизненный цикл задачи, требования к методам, реализующим асинхронные операции
  • Детально изучите работу с async/await, в том числе то, как на уровне компилятора осуществляется подготовка кода для реализации асинхронного режима работы
  • Разберетесь с темой параллелизма в C#: работа с Task Parallel Library (TPL) и PLINQ
  • Узнаете как создавать асинхронные потоки (IAsyncEnumerable<T>), работать с неизменяемыми и конкурентными коллекциями

О курсе

На сегодняшний день асинхронность и параллелизм - это одни из самых сложных тем для освоения в рамках разработки программного обеспечения. Вместе с тем, это и наиболее значимые области, в которых должен разбираться современный backend-разработчик на C#. Редко какое собеседование проходит без общения на эту тему. Мы постарались всесторонне охватить (насколько это для нас показалось возможным и необходимым) темы многопоточности, асинхронности, конкурентности и параллелизма на C#.

В рамках курса мы последовательно раскрываем темы, связанные с этими направлениями так, чтобы у учащихся сформировалось наиболее полное понимание материалов курса, причин почему возникли те или иные технологии, а также понимание того, как с ними работать. Фокус курса именно на глубоком понимании сути: мы разбираем не только "как использовать", но и "как это работает".

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

Для кого этот курс

Этот курс, в первую очередь, предназначен для опытных C# разработчиков (middle, middle+, senior уровня и выше), которые хотят глубже понять как устроены многопоточность, асинхронность и параллелизм в .NET. Он будет особенно полезен, если вы уже сталкивались с проблемами вроде deadlock, гонок данных или неэффективного использования вычислительных ресурсов, и хотите научиться писать более производительный, чистый и предсказуемый код. Если же вы начинающий разработчик и очень хотите расти, то мы тоже будем вам рады.

Начальные требования

Для успешного освоения материала требуется: уверенное знание языка C# и понимание базовых принципов объектно-ориентированного программирования (ООП). Хорошо, если у вас есть опыт работы с задачами (Task), и вы знакомы с асинхронным программированием на базовом уровне (например, вы уже использовали async/await в реальных задачах).

Наши преподаватели

Как проходит обучение

Курс состоит из семи модулей, охватывающих ключевые темы многопоточности, асинхронности и параллелизма в C# и .NET. Каждый модуль построен вокруг конкретной практической темы. В модуле от пяти до семи уроков, каждый из которых включает структурированный теоретический материал с объяснением концепций, примерами кода и демонстрацией практических кейсов. 

В конце каждого модуля вас ждет урок "Решение задач". Он содержит задачи на программирование разного уровня сложности, которые помогут закрепить знания и научиться применять изученные технологии на практике.

Программа курса

загружаем...
Certificate

Сертификат

Сертификат Stepik

Что вы получаете

  • Глубокое понимание темы конкурентности в C#: разберётесь с async/await, Task Parallel Library (TPL), PLINQ, паттерном TAP (Task-based asynchronous pattern), конструкциями синхронизации и многим другим
  • Практические навыки: научитесь применять знания в различных сценариях
  • Доступ к сообществу и поддержке: сможете задать вопросы в комментариях и получить помощь от команды Devpractice и других студентов
  • Базу для роста и экспертности: курс даст не просто знания, а понимание «как это работает», необходимое для построения высоконагруженных, надёжных и масштабируемых систем в экосистеме .NET
  • Портфолио решений типовых задач: по мере прохождения курса вы соберете коллекцию реализованных паттернов и подходов, которые можно использовать в реальных проектах
  • Возможный карьерный рост: знания об асинхронности и параллелизме являются обязательными для уровня middle/middle+/senior разработчика

Сколько стоит обучение

Price: 3 490 
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям

Price: 3 490