Как устроена многопоточность в .net

  Рет қаралды 8,924

Архитектор ПО. Александр Желнин

Архитектор ПО. Александр Желнин

Күн бұрын

Пікірлер: 50
@daymaker_trading
@daymaker_trading Ай бұрын
Большая редкость настолько наглядная и продуманная подача материала! Невероятно ценно!! ❤‍🔥
@ВасяПрестолов
@ВасяПрестолов 7 ай бұрын
я в программировании самоучка, очень не хватает на русско-язычном ютубе именно таких специалистов ,интересные темы , очень хорошая подача материала . Спасибо.
@Kulibins1
@Kulibins1 7 ай бұрын
всегда пожалуйста
@daymaker_trading
@daymaker_trading Ай бұрын
Охренеть! Очень круто! Огромное спасибо!!!
@vinogradova619
@vinogradova619 Жыл бұрын
Очень интересно 👍
@Kulibins1
@Kulibins1 Жыл бұрын
Спасибо
@ВладКолосов-ф1ц
@ВладКолосов-ф1ц Жыл бұрын
Очень полезные видео, спасибо вам
@Kulibins1
@Kulibins1 Жыл бұрын
Всегда пожалуйста 😉
@kl45gp
@kl45gp Жыл бұрын
спасибо! Хочется такое же подробное обьяснение про асинхронность и ее сравнение с java
@Kulibins1
@Kulibins1 Жыл бұрын
Может и сделаю. Нужно только свои знания java подтянуть, т.к. java не пользуюсь
@jenik6210
@jenik6210 5 ай бұрын
Спасибо большое
@ВладКолосов-ф1ц
@ВладКолосов-ф1ц Жыл бұрын
Классно было бы увидеть в след видео сравнение не только скорости, но и памяти на больших нагрузках rust vs c#
@viktoralferov2874
@viktoralferov2874 Жыл бұрын
на youtube есть: "How Much Memory for 1,000,000 Threads in 7 Languages | Go, Rust, C#, Elixir, Java, Node, Python"
@Kulibins1
@Kulibins1 Жыл бұрын
С памятью отдельная тема. кроме того rust тут точно выиграет, т.к. сборщик мусора в c# чистит перриодически, а rust сразу как выделенная память не используется. Но код на Rust писать, гораздо сложнее из-за этого
@Kulibins1
@Kulibins1 Жыл бұрын
Нужно посмотреть про миллион Thread. Но блин если 1000000 потоков будет реально выделено, то это самый не реальный случай. Как раз в видео об этом говорю. А в видео про использовании памяти при 1,000,000 потоков у c# всё очень хорошо 🤗
@ryanlashkevich9615
@ryanlashkevich9615 Жыл бұрын
@@Kulibins1 ну в высоконагруженных серверах это может наблюдаться. Еще в конце 90-х появилась проблема поддержания большого кол-ва соединений - C10K problem. В 2010-х - это уже C10M (10 миллионов подключений). Соответственно, логично задать вопрос, при 10М подключений, сколько там потоков было, 10M? Наверно именно поэтому имеет смысл задуматься о ЯП для таких высоконагруженных проектов.
@Kulibins1
@Kulibins1 Жыл бұрын
@@ryanlashkevich9615 Всё правильно и .net в этом тесте очень даже хорошие результаты, а то на заставке к видео как будто плохие, но если его посмотреть то гораздо выше чем у конкурентов. У rust самые высокие показатели.
@prumpumpumprumpumpum1607
@prumpumpumprumpumpum1607 17 күн бұрын
С наилучшими пожеланиями из 2025 У Вас идет: await task() await task() Правильно ли я понимаю что хотите сказать что в таком случае 2 вызова и выполнение методов будут "параллельными(асинхронными )" если да, то это не так.
@Kulibins1
@Kulibins1 17 күн бұрын
@@prumpumpumprumpumpum1607 в этом случае не будет параллелизма, но вот если запустить несколько task, потом уже делать await, то будет параллельно
@nouchance
@nouchance Жыл бұрын
спасибо!
@Kulibins1
@Kulibins1 Жыл бұрын
Всегда пожалуйста
@ИльяБехтерев-ш8к
@ИльяБехтерев-ш8к Жыл бұрын
Добрый день! Сделайте пожалуйста видео про потокобезрпасные коллекции. Чем они отличаюстя от обычных коллекций и можно ли с их помощью отказаться от использования примитивов синхронизации
@Kulibins1
@Kulibins1 Жыл бұрын
Думал все знают. Сделаю.
@yuriy.kostenko
@yuriy.kostenko Жыл бұрын
Так вроде тем же и отличаются, что синхронизация там встроена и не нужно самому об этом заботится.
@releyshic
@releyshic 7 ай бұрын
можете 1) отсортировать этот плейлист в правильном порядке - от старого к новому? 2) сделать видео про MVC, MVP, MVVM на Win Forms. Какие есть способы реализации этих паттернов и как это делать (что в каких папках должно быть, чего где не должно быть)? Также не понял MVC - есть куча каких то разных MVC с разными схемами; MVP, MVVM - это виды MVC или нет?
@Kulibins1
@Kulibins1 7 ай бұрын
Виде по winforms точно не будет. Кстати по всяким патернам у Сергея Колобонги есть хорошие видео
@infavi
@infavi Жыл бұрын
это так интересно, сам пока начинающий разработчик и плохо что понимаю, хотел бы посмотреть как это всё работет в unity
@Kulibins1
@Kulibins1 Жыл бұрын
В unity не покажу, т.к. им не занимался. Но там точно ипользуется специфичный threadpool, отличный от стаедартной реализации.
@sergeyintegral451
@sergeyintegral451 Жыл бұрын
Здравствуйте! Можете сделать видео - сравнения c# и java в разных аспектах ? Все таки основной конкурент c# это java, как многие считают
@Kulibins1
@Kulibins1 Жыл бұрын
Ок
@grandlagging0zero175
@grandlagging0zero175 Жыл бұрын
Сравнение потоков, да такое, чтобы все ваши слова были в картинках на слайдах(можно взять какой-то простой код в качестве примерм)...так будет проще воспринять информацию
@Kulibins1
@Kulibins1 Жыл бұрын
И так стараюсь рисовать схемы. Буду еще больше их делать 😉
@alexanderqwerty
@alexanderqwerty 9 ай бұрын
Не услышал объяснения как рантайм снимает один гринтред с выполнения и запускает другой
@Kulibins1
@Kulibins1 9 ай бұрын
в .net зелёные потоки только тестировались, а по факту это аналог коперативной многозадачности. Есть хороший пример как это работает на Rust. В .net тестили и пришли к выводу, что профит сомнительный. В этом видео я больше хотел рассказать как работает многопоточность и что когда мы пишем черещ async/await то каждый такой кусочек кода, может работать на другом потоке, что в результате даст нам масштабирование производительности.
@topProgrammer
@topProgrammer Жыл бұрын
В mvc , в контроллере как работает async await? Недавно спросили на собесе всегда ли нужно использовать асинк авейт в контроллере при работе с базой данных?
@Kulibins1
@Kulibins1 Жыл бұрын
Как я в этом видео показываю, использование async/await даёт нам разбиение нашей функции на блоки, которые лучше могут быть распределены по потокам. Что касается вопроса: то по возможности конечно нужно использовать async/await. Но сама среда .net core и так запустит функцию контроллера через пул потоков, хотите ли вы этого или нет.
@Hunter314414
@Hunter314414 Жыл бұрын
@@Kulibins1 А при выполнении запроса, если он не async await, главный поток заморожен при этом не будет?
@nv188-x5i
@nv188-x5i Жыл бұрын
⁠@@Hunter314414будет. Когда вы ждете ответа от базы или например ввод с клавиатуры, поток хоть и не выполняет никакой работы, но и не свободен. Поэтому все запросы лучше делать асинхронными, особенно если у вас нагруженное приложение.
@SkaarjTube
@SkaarjTube Жыл бұрын
Интересно было про сравнение с Rust послушать
@Kulibins1
@Kulibins1 Жыл бұрын
Всё будет. но мне тяжко - не привык к rust
@ivanvoyager
@ivanvoyager Ай бұрын
Так когда продолжение?
@Kulibins1
@Kulibins1 Ай бұрын
@@ivanvoyager Есть пару материалов на эту тему. На новогодних праздниках буду записывать
@ivanvoyager
@ivanvoyager 2 күн бұрын
@@Kulibins1 получилось? :)
@VelitiTV
@VelitiTV Жыл бұрын
А как работают IO операции? .net реально уходит ждать окончание операции на другой поток ?
@Kulibins1
@Kulibins1 Жыл бұрын
В плане тоже расскажу про IO операции, про каналы и т.д. И отвечая на вопрос, да при использовании async/await продолжение кода может (даже почти всегда) будет на другом потоке. Это даже хорошо, т.к. ресурсы лучше распределяются. Вон посмотрел видео про 1,000,000 потоков, так у .net очень даже хорошие результаты (хотя необходимость в 1,000,000 потоков сомнительна)
@КостянтинБорисенко-о5ф
@КостянтинБорисенко-о5ф 2 ай бұрын
База .
@alexeycherepanov9150
@alexeycherepanov9150 Жыл бұрын
В яву уже завозят GreenThread ы
@Kulibins1
@Kulibins1 Жыл бұрын
Они там были первыми. Только вот их необходимость не однозначна, дадут ли они хоть какой-нибудь профит в .net - не факт
@semen083
@semen083 11 ай бұрын
В 9 net тоже есть эксперимент по зелёным потокам
Объясняю RxJS
1:01:18
Архитектор ПО. Александр Желнин
Рет қаралды 35 М.
Гениальное изобретение из обычного стаканчика!
00:31
Лютая физика | Олимпиадная физика
Рет қаралды 4,8 МЛН
Thread → Task. Многопоточность и Асинхронность
13:39
Архитектор ПО. Александр Желнин
Рет қаралды 33 М.
C# Многопоточная разработка. Многопоточность без Task (ов)
13:44
Архитектор ПО. Александр Желнин
Рет қаралды 7 М.
Background works в ASP.NET Core (часть 1)
26:01
Sergei Calabonga
Рет қаралды 3 М.
Основы синхронизации потоков в C#
26:28
async/await в ASP.NET Core. Асинхронный код
27:42
Семен Алексеев | Программирование
Рет қаралды 32 М.
Технология LINQ
14:57
IRON PROGRAMMER
Рет қаралды 2,6 М.