Тёмный

#19 Многопоточность - lock, Monitor, Mutex, Semaphore. Ответ на вопрос собеседования C# / .Net 

Andrey Shyrokoriadov
Подписаться 4,3 тыс.
Просмотров 11 тыс.
50% 1

#многопоточность #lock #monitor #mutex #semaphore #syncronisation #синхронизацияпотоков #csharp #dotnet #andriyshyrokoriadov
В видео представлены различные возможность синхронизации потоко при многопоточном программировании: lock, Monitor, Mutex, Semaphore.
Обзор представлен в форме ответа на вопрос, который встречается на собеседованиях на позицию "программист C# / .Net".
Подписывайтесь на канал [программирование, путешествия]: / @andreyshyrokoriadov
0:15 - проблема актуальности данных при многопоточного программирования
1:10 - пример синхронизации из жизни
3:15 - ключевое слово lock
5:15 - недостатки использования слова lock
6:35 - другая форма записи ключевого слова lock - Monitor
7:30 - класс Mutex
8:30 - класс Semaphore
10:00 - специальные атрибуты
Текст к фильму доступен по ссылке: ashyrokoriadov.github.io/c_sh...
Дополнительная информация:
Класс Monitor - docs.microsoft.com/en-us/dotn...
Критическая секция - docs.microsoft.com/ru-ru/wind...
Класс Mutex - docs.microsoft.com/en-us/dotn...
Класс Semaphore - docs.microsoft.com/en-us/dotn...

Опубликовано:

 

19 мар 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 22   
@ivandemidov5081
@ivandemidov5081 3 года назад
Большое спасибо, за данные видео
@AndreyShyrokoriadov
@AndreyShyrokoriadov 3 года назад
Подписывайтесь на канал, в планах выпускать как минимум одно видео каждую неделю.
@ALEXANDER47477
@ALEXANDER47477 2 года назад
​@@AndreyShyrokoriadov Здравствуйте! Спасибо Вам за видео! и еще....вот я хочу разобраться с тем какие коллекции есть в с#. у всех разные преимущества недостатки в скорости, потребляемой памяти при проведении определенных операций (добавление, удаление, поиск в коллекции, сравнение элемента и т.п.)... а также в зависимости от размеров обрабатываемых данных. посоветуйте источник (статью на сайте, книгу, видео) где очень подробно, ясно и наглядно можно прочувствовать эти особенности. а также предлагаю и Вам записать видео по данной теме!)
@user-on5mh8zc5d
@user-on5mh8zc5d Год назад
Спасибо за Ваши видео, они сильно помогают заполнять некоторые пробелы. Вот чего мне в этом видео не хватило - рекомендаций когда использовать тот или иной подход. Кроме того было потеряно пару важных аспектов: 1) Есть возможность синхронизации с помощью AutoResetEvent. Возможно и не самый широко применяемый, но всё же есть. 2) Возможность применения в синхронном и асинхронном коде. Например: В асинхронном коде lock вызовет ошибку SynchronizationLockException, а Mutex ApplicationException
@ivannebyshinets5682
@ivannebyshinets5682 2 года назад
Отличное видео, спасибо!
@randomize4097
@randomize4097 3 года назад
Lock в try finally разворачивается
@mavezo6718
@mavezo6718 Год назад
Вот как и в комментарии одном ниже, ваша лекция отлично подходит под заполнение пробелов) Когда на уроке изучал и теорию, и практику, и при себе уже имеешь пример кода -- такое закрепление материала прям отличное) Только после вашего видео тема, можно сказать, закреплялась полностью
@user-zd3qw7le5c
@user-zd3qw7le5c Год назад
лайк поставил . . . спасибо за ОБЩИЙ ОБЗОР
@vm7738
@vm7738 Год назад
Спасибо!
@mamontoff3276
@mamontoff3276 2 года назад
Спасибо! :)
@WP517i
@WP517i Год назад
Спасибо!!!!!
@kl45gp
@kl45gp Год назад
Хорошее объяснение.
@user-su7sk3bk1r
@user-su7sk3bk1r 2 года назад
Thank you 😊
@AndreyShyrokoriadov
@AndreyShyrokoriadov 2 года назад
You are welcome.
@MrMihap
@MrMihap Год назад
не могу не сделать замечание: под капотом у монитора на уровне clr используется spinWait и mutex. по умолчанию spinwait работает 10 итераций, после чего блокировка проваливается на mutex (уровень ядра). Тут важно понимать контекст работы программы и длительность блокировки а так же в какой среде исполняется программа, одно ядро, один многоядерный процесор, несколько многоядерных процессов + параметры квантования в целевой операционной системе. только так можно принять действительно правильное решение о том, какой блокировкой и как пользоваться.
@iGynLoD
@iGynLoD 2 года назад
Хорошо объясняете, но формат с листочком и ручкой смотреть крайне тяжело. На этапе объяснения и примеров с аналогиями еще можно понять, но писать код на листе - это какой-то зашквар в 2021-м.
@iGynLoD
@iGynLoD 2 года назад
Предложил бы лучше формат, где основным изображением был бы экран VisualStudio, а рисунки на от руки на маленьком экране справа внизу.
@volodymyrmatselyukh8808
@volodymyrmatselyukh8808 2 года назад
++. ище ручка то какая мощьная. постоянно отвлекался на бумажку :)
@evgeny.siberian
@evgeny.siberian 2 года назад
Учитывая распространенную практику собеседований, когда код пишется на бумаге или доске, наоборот отличный формат!
@iGynLoD
@iGynLoD 2 года назад
@@evgeny.siberian я бы отказался это делать, и всем советую. Я учился в 90-е, и тогда это ещё можно было понять. Сейчас - это бред. Зачем это нужно?
@hop173
@hop173 Год назад
@@evgeny.siberian когда вы последний раз собеседования проходили?) уже года 2-3 точно используютя online IDE'шки
Далее
Спецэффекты в Симс 4
00:36
Просмотров 138 тыс.
Что такое gRPC и Protobuf?
8:37
Просмотров 44 тыс.
Lock-free коллекции в .NET 6
34:05
Просмотров 3,7 тыс.