Станислав Сидристый - lock(_sync): иллюзия идеального выбора
Ғылым және технология
Ближайшая конференция - DotNext 2024, 10 - 11 сентября, Москва + online
Подробности и билеты: jrg.su/x2GKnA
- -
Ввиду того, что lock является конструкцией языка, которая лаконично и понятно создает секцию монопольного исполнения кода, это создает иллюзию единственно верного решения. Станислав рассмотрит алгоритм его работы и ответит на вопрос: так ли это?
Пікірлер: 15
Обожаю когда Сидристый в очередной раз рассказывает про многопоточность)))
@nikolaifedorov685
8 ай бұрын
Офигеть я тупой, потому что мне кажется что он очень сумбурно рассказывает и Непонятно
@ArseniySergeev
8 ай бұрын
@@nikolaifedorov685 я по нескольку раз пересматриваю)))
ребята/коллеги, про волатайл - это всего-лишь указание компилятору/интерпретатору не использовать в оптимизации кода, при работе с этой переменной/членом всякие оптимизации, напримре, как копирование "нашей/данной" ячейки памяти в регистровую память. То есть - всегда нужно сначала "её" из ОЗУ получить, и побыренькому её заюзать, иначе полученное значение/value потеряет свой смысл и значимость. Так что... о волатайлах - не забывайте, хотя... пример от си-пи-пишников - std::atomic - каков "великий" смысл данной конструкции?
А он могет. Спасибо
@ryanlashkevich9615
9 ай бұрын
Ну на практике я бы проявлял здоровый скепсис к его советам, не зря же его Женя Пешков за volatile укусил. В multithreading-е все-таки реализация сильно сложнее, чем это выглядит в теории.
Маст хэв для подготовки к собесам и для понимания
@user-ps6kn1ps5j
10 ай бұрын
Маст хэв - это его лекции на clrium. А это для затравочки.
@EshkinKot1980
10 ай бұрын
@@user-ps6kn1ps5j Спасибо, тут всё как-то скомкано, автор перескакивает с темы на тему, много слов паразитов. Реально понять можно только то, с чем уже имел дело. На 28 и 29 слайдах нарисовано что-то странное. В начале лекции он говорит, что в реальности на одном ядре всё происходит последовательно, а на графиках нарисовано параллельное выполнение. Еще немного удивляют миллисекунды, я когда-то (в конце 0-ых) писал на С++ и счет шел на микросекунды. Даже в PHP миллисекунды появляются из-за работы с БД или по сети. Неужели в C# всё настолько грустно?
@user-ps6kn1ps5j
10 ай бұрын
@@EshkinKot1980 на графиках всё правильно нарисовано, в один момент времени исполняется один поток
@user-ps6kn1ps5j
10 ай бұрын
@@EshkinKot1980 ну и работа с сетью и бд в частности, это же блокировки сетевого ввода/вывода, это уровень ядра. Тут скорее от операционной системы зависит, чем от конкретного языка или платформы. Хотя может быть плохо написан провайдер бд, что тоже возможно.
@evseevav
10 ай бұрын
@@user-ps6kn1ps5jспасибо, посмотрим
Он говорит "ConfigureWait(false)" или что-то иное? 😮