Топовая инфа) наконец разобрался как работает многопоточность) Спасибо!
@redice8928 Жыл бұрын
спасибо Андрей
@motojpeg3 жыл бұрын
Спасибо за текст к видео! Можно еще раз прочитать и понять не понятое сразу. плюсом можно сразу вставить Ваш код в студию и погонять его там в различных вариантах. Для самообучения самое то.
@Тимур-б7г1я5 ай бұрын
Спасибо. Полезное видео и понятное объяснение) Единственное, остался вопрос: А как такие ошибки можно допустить случайно, по не опытности?) Только если у тебя совсем нет понимания, как работает хотя бы тот же локер, и что переменная для локера является общей, и только когда ты пишешь код подряд, под диктовку, особо не разбирая его и не вникая в суть. То есть для допущения подобных ошибок нужно постараться. В реальной практике конечно может быть, как из-за схожего нейминга случайно указать не тот локер, который должен занимать другой поток. Только из-за невнимательности, как мне кажется, можно такое допустить. Но всё же тема любопытная, а вот судя по описанию в начале видео на листке бумаги, starvation более чем реален и возможен, особенно если есть плохое понимание как синхронизировать потоки, как их приостанавливать, чтоб нужный поток вылез и смог обратиться к свободному общему ресурсу. Пример решения проблемы starvation я бы рассмотрел В любом случае, уроки полезные, и имеют относительно несложное объяснение, иногда всё же нужно самому додумывать, скорее догадываться, но чтоб понимать о чём речь, нужно всего лишь держать контекст объяснения в уме. Лайк, однозначно
@РНС_Саакашвили Жыл бұрын
спасибо . . . поставил лайк
@maxkrasilnik52513 жыл бұрын
Лучше сперва показывать код, а потом запускать программу и показывать результат. Чтобы понимать что происходит. Это я сейчас про ту часть видео, где лайв лок
@AndreyShyrokoriadov3 жыл бұрын
Да, со временем я и сам пришёл к этому выводу. Например я снял два видео: шаблон «Декоратор» и принцип O SOLID. В первом видео был код и немного объяснения, а во втором видео только объяснение на основании первого видео.
@denkor.z3 жыл бұрын
Получается, dead lock отличается от live lock лишь тем, что в случае dead lock за проверку отвечает неявная имплементация работы с потоками, а во втором случае - явная проверка
@AndreyShyrokoriadov3 жыл бұрын
Если мне задали бы такой вопрос на собеседовании я бы ответил что в случае dead lock работа нашего приложения останавливается и ничего не происходят - оба потока которые находятся в dead lock ожидают друг друга. С другой стороны при live lock потоки имеют возможность выполнения какой-то работы, но продвинуться дальше определенного пункта в программе они не могут. Они не могут продвинутся вперед потому что ожидают освобождения ресурсов друг друга. Я бы мог сравнить live lock с такой жизненной ситуацией. У нас есть узкий коридор по которому на встречу друг другу идут 2 человека с излишним весом (такие "боди-позитивщики" :) ). Когда они встречаются, то они не могут разминуться, но пытаются это сделать протискиваясь то влево то вправо, однако безрезультатно. Если бы у нас был бы dead lock в узком коридоре, то эти 2 "боди-позитивщика" просто стояли бы друг напротив друга и ничего бы не делали.
@MixturaLife2 жыл бұрын
@@AndreyShyrokoriadov мне кажется, что ваш пример кода не корректен в данном случае, так как ни одна из процедур не пытается поменять свое состояние чтобы освободится от лока. То есть это тот же дедлок. Могу быть не прав, но я это так понял.
@valetra_97 Жыл бұрын
@@MixturaLife думаю, что освобождение от лока не является показателем вида лока - это говорит о хорошем подходе к разработке.
@JohnDoe-uu5jy3 жыл бұрын
У вас странный язык установлен в Visual Studio, похож на польский.
@AndreyShyrokoriadov3 жыл бұрын
Да, это польский.
@Тимур-б7г1я5 ай бұрын
Я думал, это испанский😀 Тоже заметил, что другой язык
@sehrgutlocj8 ай бұрын
Бестолковое объяснение, бессистемная и непонятная, броски по тексту
@AndreyShyrokoriadov8 ай бұрын
Хотелось бы услышать / увидеть Ваше объяснение, но я ничего не нашел 🤦♂️
@sehrgutlocj8 ай бұрын
@@AndreyShyrokoriadov дедактики не хватает. Я не обучаю программированию