Я начинающих .NET Core ( Backend) разработчик.Пока основы языка С# учу.Питаюсь понять, но для меня это уже слышком трудновато как мне кажется.Хотя смотрю ваши ролики.Спасибо вам огромное!
@@Kulibins1 Извините что беспокою вас опять.Вы имеете ввиду : Джеффри Рихтера: CLR via C# Программирование на платформе Microsoft NET Framework 4.5 на языке C#?
Поправьте если ошибаюсь. Асинхронные задачи не используют сами по себе потоки в принципе.Асинхронные задачи не выполняются внутри другого потока. Они отсылают "сигнал" на уровень ОС к драйверам I/O устройств используя очередь IRP пакетов и возвращают управление вызывающему коду. Когда async задача выполнена ОС пингует код об этом и уже продолжение кода (которое идет после команды await) выполняется в потоке из пула потоков. Поэтому при отладке в теле асинхронной функции после await мы видим, что находимся в потоке "Worker Thread From Pool" или как-то так
приятно когда человек действительно знает технологию,умеет ее обьяснять,и делает выжимку важных моментов а не повторяет и до того проезженные темы. @@Kulibins1
В этом примере он и не должен быть диспоузед. т.к. если мы говорим про класс LockAsync, то объект этого класса и служит для блокировки, в коде он никогда не диспоузится. При выходе из программы, он чистится стандартным сборщиком. Да же не скажу сходу ситуацию когда его нужно освобождать, наверное только динамически загружаемый, а потом выгружаемый код
Смотрите видео полностью, потом возмущайтесь. И да для запуска таска в другом потоке используются потоки операционной системы. Может бы вы чего-то не знаете? Или в чём смысл комментария? В общем исходный код .net он открыт, можете посмотреть что там внутри 🤣 Может быть наоборот кому-то нужно на курсы? Т.к. про task я наверное смогу больше рассказать, я им активно пользуюсь еще до того как он в Фреймворк вошёл и был дополнительной библиотекой и как бы весь его исходный код прошерстил и не раз.
Спасибо Александр! .Про (0:51) Асинхронность и Многопоточность сделайте пожалуйста отдельное видео.Спасибо большое!
Хорошо 😋
Спасибо за интересный материал, особенно за блокировщик чтения/запись 👍
да очень полезный блокировщик, многие не задумываются, просто lock везде делают и всё.
Таймкоды:
0:00 вступление
0:30 2 Task'а
2:19 оператор lock
3:34 Monitor
4:20 lock - один поток
6:13 lock async
6:49 SemaphorSlim
8:50 lock read/write
11:39 пример из реальной жизни про кэширование
Очень интересный материал, спасибо!
всегда пожалуйста 😉
Я начинающих .NET Core ( Backend) разработчик.Пока основы языка С# учу.Питаюсь понять, но для меня это уже слышком трудновато как мне кажется.Хотя смотрю ваши ролики.Спасибо вам огромное!
Эти видео больше для мидлов. По основам советую почитать Рихтера.
@@Kulibins1 Извините что беспокою вас опять.Вы имеете ввиду : Джеффри Рихтера: CLR via C# Программирование на платформе Microsoft NET Framework 4.5 на языке C#?
@@puzzaro166 да
Круто!
Спасибо
Разница между асинхронностью и многопоточностью - в асинхронной задаче во время её выполнения не происходит блокировка потока.
не совсем так, как минимум ответ гораздо шире 😋
@@Kulibins1 старался максимально лаконично ответить))
Для тех кому хочется подробней - стоит Алекс дэвиса почитать
Поправьте если ошибаюсь. Асинхронные задачи не используют сами по себе потоки в принципе.Асинхронные задачи не выполняются внутри другого потока. Они отсылают "сигнал" на уровень ОС к драйверам I/O устройств используя очередь IRP пакетов и возвращают управление вызывающему коду. Когда async задача выполнена ОС пингует код об этом и уже продолжение кода (которое идет после команды await) выполняется в потоке из пула потоков. Поэтому при отладке в теле асинхронной функции после await мы видим, что находимся в потоке "Worker Thread From Pool" или как-то так
Все это интересно, только не видно с телефона нифига.
Я и так увеличил маштаб. Вероятно код очень тяжело с телефона смотреть. тут нужно другое устройство
приятно когда человек действительно знает технологию,умеет ее обьяснять,и делает выжимку важных моментов а не повторяет и до того проезженные темы. @@Kulibins1
Спасибо Александр! Можно ли получить, пожалуйста, код?
github.com/AlexanderZhelnin/lock
в обертках (LockAsync и тд) не диспоузаются примитивы синхронизации. или это код очень для примера
В этом примере он и не должен быть диспоузед. т.к. если мы говорим про класс LockAsync, то объект этого класса и служит для блокировки, в коде он никогда не диспоузится. При выходе из программы, он чистится стандартным сборщиком. Да же не скажу сходу ситуацию когда его нужно освобождать, наверное только динамически загружаемый, а потом выгружаемый код
На моменте Task это обёртка над Thread можно выключать, если разработчик не пониманет что есть таска и что есть поток, на курсы джунов его
Смотрите видео полностью, потом возмущайтесь. И да для запуска таска в другом потоке используются потоки операционной системы. Может бы вы чего-то не знаете? Или в чём смысл комментария? В общем исходный код .net он открыт, можете посмотреть что там внутри 🤣 Может быть наоборот кому-то нужно на курсы? Т.к. про task я наверное смогу больше рассказать, я им активно пользуюсь еще до того как он в Фреймворк вошёл и был дополнительной библиотекой и как бы весь его исходный код прошерстил и не раз.