Многопоточное и асинхронное программирование в .NET. Владимир Крамар .NET Fest 2018

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ม.ค. 2025

ความคิดเห็น • 37

  • @antonvalintsev1384
    @antonvalintsev1384 4 ปีที่แล้ว +29

    Если ты что-то не можешь обьяснить просто - ты этого не знаешь. Владимир, просто супер! Отлично поднял вопрос. Жму руку!

  • @alekseev74
    @alekseev74 3 ปีที่แล้ว +18

    Very интересная information. It помогла мне a lot.
    Без шуток, сделал важные заметки для себя. Спасибо за доклад.

  • @pprometey
    @pprometey 2 ปีที่แล้ว

    Шикарный доклад. По существу, без воды, с глубоким пониманием как это работает, а не просто как обезьяна - "использую, сам не понимая, главное работает". Спикеру респект. И очень доступно. За счет понимания спикером всей концепции.

  • @BlushSmith
    @BlushSmith 9 หลายเดือนก่อน +1

    Докладчик очень хорош, спасибо!

    • @timur2887
      @timur2887 8 หลายเดือนก่อน

      сомнительно, но окэй

  • @IlyaArlenka
    @IlyaArlenka 11 หลายเดือนก่อน +2

    Ничего не понял, но очень интересно)

  • @igiarbl
    @igiarbl ปีที่แล้ว +3

    44:48 что-то я не понял как там мгновенно создадутся 20 потоков к файлам. Там вроде как это будет происходить по очереди и каждая задача будет awaitиться, новая не начнется пока не закончится предыдущая итерация.

    • @timur2887
      @timur2887 8 หลายเดือนก่อน

      ему надо было в цикле создать асинхронные таски, а уже потом их ожидать... а вообще таски потоки не создают, а берут потоки из пула

  • @daniilevsienko4060
    @daniilevsienko4060 2 ปีที่แล้ว +1

    Пример на 44-30 не совсем понятен. Как я понимаю код преобразуется в стейт машину, в switch конструкцию в реализации на данный момент, то есть по идее итерация for доходит до await конструкции, поток отдается и возобновляет свое выполнение после того как async операция завершилась. И если так рассуждать, то никаких 20 одновременно открытых файлов не будет. Что не так?

  • @IlyaZherebtsov
    @IlyaZherebtsov ปีที่แล้ว

    я видел пример использования async/await на конференции 2014 года в мск, в нем крайне редко использовался новый поток Оо
    в основном все делалось в одном потоке

    • @timur2887
      @timur2887 8 หลายเดือนก่อน

      че?)

  • @Kuvaldis1983
    @Kuvaldis1983 3 ปีที่แล้ว

    Понравилось, спасибо!

  • @mirlan19
    @mirlan19 2 ปีที่แล้ว

    Спасибо

  • @СтороннийНаблюдатель-ч6ф
    @СтороннийНаблюдатель-ч6ф 3 ปีที่แล้ว

    3:20 Один поток не занимает 1 мбайт. Это его виртуальное пространство в 32 разрядной сборке (4 мб в 64-разрядной). Фактически 1 более менее пустой поток в среднем занимает 8-10 страниц памяти, т.е всего около 32-36 кбайт памяти.

    • @rustyscarlet
      @rustyscarlet 3 ปีที่แล้ว +5

      Речь не о потоке, а его стеке, более того сами мелкомягкие заявляют, что ARM, x86 и x64 имеют размер стека по умолчанию равный 1 МБ. Также в конце упоминается, что не всегда стек занимает 1мб.

    • @СтороннийНаблюдатель-ч6ф
      @СтороннийНаблюдатель-ч6ф 3 ปีที่แล้ว +1

      @@rustyscarlet Да, стек, неправильно выразился. На каждый поток выделяется свой стек, размер виртуального пространства которого лимитирован определённой величиной. Напимер для 32 разрядной системы это около мегабайта по умолчанию. Но это не значит что этот мегабайт сразу алоцирован для потока. Физическая память выделяется по требованию, страницами. И в среднем, каждому потоку нужно всего несколько страниц стека. В этом можно убедится, если запустить например process hucker и посмотреть сколько страниц и памяти и физически байт, выделяется для каждого потока любого многопоточного приложения.

    • @АртемАрте-г5х
      @АртемАрте-г5х 2 ปีที่แล้ว +4

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

  • @viacheslav1392
    @viacheslav1392 3 ปีที่แล้ว +10

    после аттентивного ревьюинга данного видео могу нотифицировать автора о комплитальном эмилиейшонге моих ушей

  • @vladoss4643
    @vladoss4643 ปีที่แล้ว +2

    Читаю "Владимир Крамник" Асинхронное и многопоточное...
    Думаю чегоооо?????
    (Люблю шахматы)

  • @AndrOSbaranov
    @AndrOSbaranov 7 หลายเดือนก่อน +1

    Самая большая ошибка во всем докладе это то что таск не создаёт потоки.

    • @alexanderraf5553
      @alexanderraf5553 7 หลายเดือนก่อน

      Таск же дёргает таск шелудер под капотом, который с пулом потоков работает...

  • @735476589
    @735476589 2 ปีที่แล้ว

    Афтар по моему чето курил

  • @КонстантинОгородов-ш3л
    @КонстантинОгородов-ш3л 3 ปีที่แล้ว +6

    Очень сильно режет слух мешанина из русского и английского. Да и в целом доклад какой-то скомканный...

    • @ПростоЁж-щ3ъ
      @ПростоЁж-щ3ъ 2 ปีที่แล้ว +6

      Почему так? У нас вся литература на английском, терминология всем понятна.

    • @КонстантинОгородов-ш3л
      @КонстантинОгородов-ш3л 2 ปีที่แล้ว +4

      @@ПростоЁж-щ3ъ Потому что сейчас очень много материалов на русском языке с хорошим переводом в сети, а в книгах так и подавно. Хочешь читать\говорить на русском - пожалуйста. На английском - тоже никто не запрещает, если навык позволяет. Но только не оба варианта одновременно.
      Я не то чтобы совсем против англицизмов - иногда очень сложно подобрать перевод к слову или выражению, потому что в русском языке аналогичного понятия нет. Но в случае наличия подходящего по значению русского слова считаю что использоваться должно именно оно, дабы не загаживать язык всяким непотребством аки "треды", "таски", "чекинить", "резолвить" и т.д.

    • @ПростоЁж-щ3ъ
      @ПростоЁж-щ3ъ 2 ปีที่แล้ว +8

      ​@@КонстантинОгородов-ш3л , но ведь в команде разработки все говорят вот такими словами, разве нет?

    • @vitalivanovich1039
      @vitalivanovich1039 2 ปีที่แล้ว +1

      @@КонстантинОгородов-ш3л Не забывайте, что в русском языке ещё есть правила использования знаков препинания.

    • @imagine_jl26
      @imagine_jl26 2 ปีที่แล้ว +2

      @@КонстантинОгородов-ш3л потому, что если сравнить кол-во оригинальных материалов на англ. и то, что переведено на русский, то все самые свежие и актуальные выступления/книги/статьи и т.д. - не переведены. Переводы просто катастрофически не поспевают за всеми обновлениями и нововведениями. Как следствие, если мы в русскоязычном сообществе, то мы общаемся на русском, но как разработчики (если мы, как я считаю - хорошие разработчики), работаем с английским языком, получаем и информацию и т.д. По этому использование англицизмов в этом случае - естественная практика, наоборот, позволяющая улучшить понимание, потому что в 95% случаев ты работаешь именно с "оригинальными" названиями и определениями, а не их адаптацией под русский язык, иначе вас просто тяжело будет понять. А держать в голове по 2 определения и постоянно ментально между ними переключаться - тоже такая себе идея. Так что если вы разработчик и это вам режет слух, то что тут сказать, или терпеть, или корректировать свой профессиональный путь.