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

Поделиться
HTML-код
  • Опубликовано: 22 янв 2025

Комментарии • 49

  • @daymaker_trading
    @daymaker_trading Месяц назад +1

    Большая редкость настолько наглядная и продуманная подача материала! Невероятно ценно!! ❤‍🔥

  • @ВасяПрестолов
    @ВасяПрестолов 7 месяцев назад +5

    я в программировании самоучка, очень не хватает на русско-язычном ютубе именно таких специалистов ,интересные темы , очень хорошая подача материала . Спасибо.

    • @Kulibins1
      @Kulibins1  6 месяцев назад +3

      всегда пожалуйста

  • @daymaker_trading
    @daymaker_trading Месяц назад

    Охренеть! Очень круто! Огромное спасибо!!!

  • @vinogradova619
    @vinogradova619 Год назад +6

    Очень интересно 👍

  • @ВладКолосов-ф1ц
    @ВладКолосов-ф1ц Год назад +3

    Очень полезные видео, спасибо вам

    • @Kulibins1
      @Kulibins1  Год назад +2

      Всегда пожалуйста 😉

  • @kl45gp
    @kl45gp Год назад +2

    спасибо! Хочется такое же подробное обьяснение про асинхронность и ее сравнение с java

    • @Kulibins1
      @Kulibins1  Год назад +1

      Может и сделаю. Нужно только свои знания java подтянуть, т.к. java не пользуюсь

  • @jenik6210
    @jenik6210 5 месяцев назад +2

    Спасибо большое

  • @topProgrammer
    @topProgrammer Год назад +2

    В mvc , в контроллере как работает async await? Недавно спросили на собесе всегда ли нужно использовать асинк авейт в контроллере при работе с базой данных?

    • @Kulibins1
      @Kulibins1  Год назад +2

      Как я в этом видео показываю, использование async/await даёт нам разбиение нашей функции на блоки, которые лучше могут быть распределены по потокам. Что касается вопроса: то по возможности конечно нужно использовать async/await. Но сама среда .net core и так запустит функцию контроллера через пул потоков, хотите ли вы этого или нет.

    • @Hunter314414
      @Hunter314414 Год назад

      @@Kulibins1 А при выполнении запроса, если он не async await, главный поток заморожен при этом не будет?

    • @nv188-x5i
      @nv188-x5i Год назад

      ⁠@@Hunter314414будет. Когда вы ждете ответа от базы или например ввод с клавиатуры, поток хоть и не выполняет никакой работы, но и не свободен. Поэтому все запросы лучше делать асинхронными, особенно если у вас нагруженное приложение.

  • @ВладКолосов-ф1ц
    @ВладКолосов-ф1ц Год назад +2

    Классно было бы увидеть в след видео сравнение не только скорости, но и памяти на больших нагрузках rust vs c#

    • @viktoralferov2874
      @viktoralferov2874 Год назад +2

      на youtube есть: "How Much Memory for 1,000,000 Threads in 7 Languages | Go, Rust, C#, Elixir, Java, Node, Python"

    • @Kulibins1
      @Kulibins1  Год назад +2

      С памятью отдельная тема. кроме того rust тут точно выиграет, т.к. сборщик мусора в c# чистит перриодически, а rust сразу как выделенная память не используется. Но код на Rust писать, гораздо сложнее из-за этого

    • @Kulibins1
      @Kulibins1  Год назад +2

      Нужно посмотреть про миллион Thread. Но блин если 1000000 потоков будет реально выделено, то это самый не реальный случай. Как раз в видео об этом говорю. А в видео про использовании памяти при 1,000,000 потоков у c# всё очень хорошо 🤗

    • @ryanlashkevich9615
      @ryanlashkevich9615 Год назад +1

      @@Kulibins1 ну в высоконагруженных серверах это может наблюдаться. Еще в конце 90-х появилась проблема поддержания большого кол-ва соединений - C10K problem. В 2010-х - это уже C10M (10 миллионов подключений). Соответственно, логично задать вопрос, при 10М подключений, сколько там потоков было, 10M?
      Наверно именно поэтому имеет смысл задуматься о ЯП для таких высоконагруженных проектов.

    • @Kulibins1
      @Kulibins1  Год назад +2

      @@ryanlashkevich9615 Всё правильно и .net в этом тесте очень даже хорошие результаты, а то на заставке к видео как будто плохие, но если его посмотреть то гораздо выше чем у конкурентов. У rust самые высокие показатели.

  • @ИльяБехтерев-ш8к
    @ИльяБехтерев-ш8к Год назад +1

    Добрый день! Сделайте пожалуйста видео про потокобезрпасные коллекции. Чем они отличаюстя от обычных коллекций и можно ли с их помощью отказаться от использования примитивов синхронизации

    • @Kulibins1
      @Kulibins1  Год назад +1

      Думал все знают. Сделаю.

    • @yuriy.kostenko
      @yuriy.kostenko Год назад

      Так вроде тем же и отличаются, что синхронизация там встроена и не нужно самому об этом заботится.

  • @nouchance
    @nouchance Год назад +2

    спасибо!

    • @Kulibins1
      @Kulibins1  Год назад +2

      Всегда пожалуйста

  • @infavi
    @infavi Год назад +2

    это так интересно, сам пока начинающий разработчик и плохо что понимаю, хотел бы посмотреть как это всё работет в unity

    • @Kulibins1
      @Kulibins1  Год назад +2

      В unity не покажу, т.к. им не занимался. Но там точно ипользуется специфичный threadpool, отличный от стаедартной реализации.

  • @sergeyintegral451
    @sergeyintegral451 Год назад +3

    Здравствуйте! Можете сделать видео - сравнения c# и java в разных аспектах ? Все таки основной конкурент c# это java, как многие считают

  • @SkaarjTube
    @SkaarjTube Год назад +1

    Интересно было про сравнение с Rust послушать

    • @Kulibins1
      @Kulibins1  Год назад

      Всё будет. но мне тяжко - не привык к rust

  • @grandlagging0zero175
    @grandlagging0zero175 Год назад +1

    Сравнение потоков, да такое, чтобы все ваши слова были в картинках на слайдах(можно взять какой-то простой код в качестве примерм)...так будет проще воспринять информацию

    • @Kulibins1
      @Kulibins1  Год назад +2

      И так стараюсь рисовать схемы. Буду еще больше их делать 😉

  • @alexanderqwerty
    @alexanderqwerty 9 месяцев назад +1

    Не услышал объяснения как рантайм снимает один гринтред с выполнения и запускает другой

    • @Kulibins1
      @Kulibins1  9 месяцев назад +1

      в .net зелёные потоки только тестировались, а по факту это аналог коперативной многозадачности. Есть хороший пример как это работает на Rust. В .net тестили и пришли к выводу, что профит сомнительный. В этом видео я больше хотел рассказать как работает многопоточность и что когда мы пишем черещ async/await то каждый такой кусочек кода, может работать на другом потоке, что в результате даст нам масштабирование производительности.

  • @releyshic
    @releyshic 7 месяцев назад +1

    можете
    1) отсортировать этот плейлист в правильном порядке - от старого к новому?
    2) сделать видео про MVC, MVP, MVVM на Win Forms. Какие есть способы реализации этих паттернов и как это делать (что в каких папках должно быть, чего где не должно быть)?
    Также не понял MVC - есть куча каких то разных MVC с разными схемами; MVP, MVVM - это виды MVC или нет?

    • @Kulibins1
      @Kulibins1  7 месяцев назад +1

      Виде по winforms точно не будет. Кстати по всяким патернам у Сергея Колобонги есть хорошие видео

  • @prumpumpumprumpumpum1607
    @prumpumpumprumpumpum1607 12 дней назад +1

    С наилучшими пожеланиями из 2025
    У Вас идет:
    await task()
    await task()
    Правильно ли я понимаю что хотите сказать что в таком случае 2 вызова и выполнение методов будут "параллельными(асинхронными )" если да, то это не так.

    • @Kulibins1
      @Kulibins1  12 дней назад +1

      @@prumpumpumprumpumpum1607 в этом случае не будет параллелизма, но вот если запустить несколько task, потом уже делать await, то будет параллельно

  • @VelitiTV
    @VelitiTV Год назад +1

    А как работают IO операции? .net реально уходит ждать окончание операции на другой поток ?

    • @Kulibins1
      @Kulibins1  Год назад +2

      В плане тоже расскажу про IO операции, про каналы и т.д. И отвечая на вопрос, да при использовании async/await продолжение кода может (даже почти всегда) будет на другом потоке. Это даже хорошо, т.к. ресурсы лучше распределяются. Вон посмотрел видео про 1,000,000 потоков, так у .net очень даже хорошие результаты (хотя необходимость в 1,000,000 потоков сомнительна)

  • @ivanvoyager
    @ivanvoyager 29 дней назад

    Так когда продолжение?

    • @Kulibins1
      @Kulibins1  29 дней назад

      @@ivanvoyager Есть пару материалов на эту тему. На новогодних праздниках буду записывать

  • @КостянтинБорисенко-о5ф

    База .

  • @alexeycherepanov9150
    @alexeycherepanov9150 Год назад +1

    В яву уже завозят GreenThread ы

    • @Kulibins1
      @Kulibins1  Год назад +1

      Они там были первыми. Только вот их необходимость не однозначна, дадут ли они хоть какой-нибудь профит в .net - не факт

    • @semen083
      @semen083 10 месяцев назад

      В 9 net тоже есть эксперимент по зелёным потокам