1

Ну вот все пропагандируют, что IO операции должны быть неблокирующими и в этом случае поток сможет заниматься полезной работой, а не ждать ожидания.

Но зачем это нужно? Поток, если я не ошибаюсь, весит всего 1 мб. Да, если некоторые затраты на создание, но современные ПК должны этого не замечать. Процессорное время ожидающие потоки не жрут.

Так в чем профит?

  • Во-первых, тысяча потоков займёт уже целый гигабайт. Во-вторых, современные ПК очень даже чувствуют тысячи потоков — это нагрузка на планировщик и нагрузка на переключение процессорного ядра между разными потоками. – andreymal Apr 30 '19 at 16:59
  • Если вы хотите создать всего несколько потоков для личного пользования, то тогда конечно никаких проблем. Но на высоконагруженных системах, обслуживающих популярные сайты, одновременно могут быть активны и сотни тысяч соединений. – andreymal Apr 30 '19 at 17:00
  • И да, потоки могут быть остановлены операционной системой в любой момент, в том числе посреди работы, поэтому нужно городить сложные механизмы синхронизации потоков друг с другом во избежание повреждения данных. В асинхронщине, конечно, тоже нужно иногда городить, но всё же проблема там не столь остра, так как моменты переключения на другие задачи под полным контролем программиста (по сути кооперативная многозадачность). – andreymal Apr 30 '19 at 17:04
  • @AlexanderPetrov, это хорошо или плохо?:) – Grundy Apr 30 '19 at 18:18
  • @Alexander Petrov, что такое "кывта"? – freim May 02 '19 at 10:37
  • @Alexander Petrov, что за сайт-то? Он же наверняка не "кывта" называется? – freim May 02 '19 at 10:55

0 Answers0