No video

#21 Многопоточность - Deadlock, livelock, starvation. Ответ на вопрос собеседования C# / .Net

  Рет қаралды 5,131

Andrey Shyrokoriadov

Andrey Shyrokoriadov

3 жыл бұрын

#многопоточность #deadlock #livelock #starvation #csharp #dotnet #andriyshyrokoriadov
В видео рассмотрены ошибки типа deadlock, livelock и starvation, которые возникают при многопоточном программировании.
Обзор представлен в форме ответа на вопрос, который встречается на собеседованиях на позицию "программист C# / .Net".
Подписывайтесь на канал [программирование, путешествия]: / @andreyshyrokoriadov
0:10 - введение
0:35 - deadlock
1:45 - livelock
2:10 - starvation - "голод ресурсов"
4:20 - deadlock пример в коде
12:50 - причина возникновения deadlock
13:25 - livelock пример в коде
Текст к фильму доступен по ссылке: ashyrokoriadov.github.io/c_sh...

Пікірлер: 17
@firemanhood1526
@firemanhood1526 2 жыл бұрын
Топовая инфа) наконец разобрался как работает многопоточность) Спасибо!
@motojpeg
@motojpeg 2 жыл бұрын
Спасибо за текст к видео! Можно еще раз прочитать и понять не понятое сразу. плюсом можно сразу вставить Ваш код в студию и погонять его там в различных вариантах. Для самообучения самое то.
@redice8928
@redice8928 Жыл бұрын
спасибо Андрей
@user-zd3qw7le5c
@user-zd3qw7le5c Жыл бұрын
спасибо . . . поставил лайк
@maxkrasilnik5251
@maxkrasilnik5251 2 жыл бұрын
Лучше сперва показывать код, а потом запускать программу и показывать результат. Чтобы понимать что происходит. Это я сейчас про ту часть видео, где лайв лок
@AndreyShyrokoriadov
@AndreyShyrokoriadov 2 жыл бұрын
Да, со временем я и сам пришёл к этому выводу. Например я снял два видео: шаблон «Декоратор» и принцип O SOLID. В первом видео был код и немного объяснения, а во втором видео только объяснение на основании первого видео.
@denkor.z
@denkor.z 2 жыл бұрын
Получается, dead lock отличается от live lock лишь тем, что в случае dead lock за проверку отвечает неявная имплементация работы с потоками, а во втором случае - явная проверка
@AndreyShyrokoriadov
@AndreyShyrokoriadov 2 жыл бұрын
Если мне задали бы такой вопрос на собеседовании я бы ответил что в случае dead lock работа нашего приложения останавливается и ничего не происходят - оба потока которые находятся в dead lock ожидают друг друга. С другой стороны при live lock потоки имеют возможность выполнения какой-то работы, но продвинуться дальше определенного пункта в программе они не могут. Они не могут продвинутся вперед потому что ожидают освобождения ресурсов друг друга. Я бы мог сравнить live lock с такой жизненной ситуацией. У нас есть узкий коридор по которому на встречу друг другу идут 2 человека с излишним весом (такие "боди-позитивщики" :) ). Когда они встречаются, то они не могут разминуться, но пытаются это сделать протискиваясь то влево то вправо, однако безрезультатно. Если бы у нас был бы dead lock в узком коридоре, то эти 2 "боди-позитивщика" просто стояли бы друг напротив друга и ничего бы не делали.
@MixturaLife
@MixturaLife 2 жыл бұрын
@@AndreyShyrokoriadov мне кажется, что ваш пример кода не корректен в данном случае, так как ни одна из процедур не пытается поменять свое состояние чтобы освободится от лока. То есть это тот же дедлок. Могу быть не прав, но я это так понял.
@valetra_97
@valetra_97 Жыл бұрын
@@MixturaLife думаю, что освобождение от лока не является показателем вида лока - это говорит о хорошем подходе к разработке.
@JohnDoe-uu5jy
@JohnDoe-uu5jy 3 жыл бұрын
У вас странный язык установлен в Visual Studio, похож на польский.
@AndreyShyrokoriadov
@AndreyShyrokoriadov 3 жыл бұрын
Да, это польский.
@sehrgutlocj
@sehrgutlocj 2 ай бұрын
Бестолковое объяснение, бессистемная и непонятная, броски по тексту
@AndreyShyrokoriadov
@AndreyShyrokoriadov 2 ай бұрын
Хотелось бы услышать / увидеть Ваше объяснение, но я ничего не нашел 🤦‍♂️
@sehrgutlocj
@sehrgutlocj 2 ай бұрын
@@AndreyShyrokoriadov дедактики не хватает. Я не обучаю программированию
@AndreyShyrokoriadov
@AndreyShyrokoriadov 2 ай бұрын
@@sehrgutlocj у Вас в слове «Дидактика» ошибка…
@sehrgutlocj
@sehrgutlocj 2 ай бұрын
@@AndreyShyrokoriadov я малограмотный
Deadlocks vs Livelocks - Java Concurrency - Java Brains
13:35
Java Brains
Рет қаралды 36 М.
Идеально повторил? Хотите вторую часть?
00:13
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 11 МЛН
A teacher captured the cutest moment at the nursery #shorts
00:33
Fabiosa Stories
Рет қаралды 56 МЛН
ПРОВЕРИЛ АРБУЗЫ #shorts
00:34
Паша Осадчий
Рет қаралды 7 МЛН
Асинхронное программирование на C# (блок 1)
1:01:53
Просто программист
Рет қаралды 6 М.
Вопросы к собеседованию C# (МНОГОПОТОЧНОСТЬ, Garbage Collector, Коллекции, Типы данных)
16:49
Александр Алексеев | Папочка Дотнета
Рет қаралды 1,7 М.
Deadlocks in your .NET app
10:10
Raw Coding
Рет қаралды 6 М.
Thread → Task. Многопоточность и Асинхронность
13:39
Архитектор ПО. Александр Желнин
Рет қаралды 29 М.