Как работает многопоточность и синхронизация потоков / Monitor (ДУШевный пример)

#csharp #monitor #tutorial Поддержите автора - На карту сбера 4276400076514539 (Андрей Николаевич) Даже 100, даже 10 рублей будет просто превосходно! Если миллион скинет по рублю будет миллион рублей!))) В этом видео я расскажу о том, как работает многопоточность. Вы узнаете как создавать критическую секцию с помощью методов Enter и Exit класса-объекта Monitor. Мы разберём забавный пример прекрасно иллюстрирующий синхронизацию доступа к разделяемому ресурсу и другие задействованные этим процессом механизмы. · В случае использования нескольких потоков приходится координировать их действия такой процесс, называется синхронизацией. · Основная причина применения синхронизации - необходимость разделять среди двух или более потоков общий ресурс (разделяемый ресурс), который может быть одновременно доступен только одному потоку. · В основу синхронизации положено понятие блокировки, посредством которой организуется управление доступом к кодовому блоку (критической секции). Когда доступный для каждого из потоков объект (объект синхронизации доступа) заблокирован одним потоком, остальные потоки не могут получить доступ к заблокированному кодовому блоку (критической секции). Когда же блокировка снимается одним потоком, объект(объект синхронизации доступа) становится доступным для использования в другом потоке. · Объектом синхронизации доступа к разделяемому ресурсу считается такой объект, который представляет синхронизируемый ресурс. В некоторых случаях им оказывается экземпляр самого ресурса или же произвольный экземпляр класса, используемого для синхронизации. · Ключевое слово lock не позволит одному потоку войти в важный раздел кода в тот момент, когда в нем находится другой поток. При попытке входа другого потока в заблокированный код потребуется дождаться снятия блокировки объекта. · Ключевое слово lock вызывает () в начале блока и () в конце блока. Подписывайтесь на канал, ставьте лайки, задавайте вопросы в комментариях!
Back to Top