Современные операционные системы могут поддерживать выполнение очень большого количества потоков.
В целом, аппаратное обеспечение продолжает работать быстрее (и в последнее время оно стало работать быстрее, что намного удобнее для многопоточности и многопроцессорности, чем для однопоточных циклов событий, т. Е. Увеличено количество ядер, а не увеличена пропускная способность обработки). возможности в одном ядре). Если вы не можете позволить себе накладные расходы сегодня, вы, вероятно, можете позволить себе это завтра.
То, что кооперативные системы многозадачности Twisted (и, по-видимому, Node.js и др.) Предлагает по сравнению с упреждающей многопоточностью (по крайней мере, в форме pthreads), - это простота программирования.
Правильное использование многопоточности подразумевает гораздо большую осторожность, чем правильное использование одного потока. Цикл обработки событий - это всего лишь средство выполнения множества задач, не выходя за пределы одного потока.
Учитывая распространение параллельного оборудования, было бы идеально, если бы многопоточность или многопроцессорность стали проще (и проще правильно ). Актеры, передача сообщений, возможно, даже сети Петри - вот некоторые из решений, которые люди пытались решить эту проблему. Они по-прежнему очень маргинальны по сравнению с основным подходом многопоточности (pthreads). Другой подход - SEDA, который использует несколько потоков для запуска нескольких циклов событий. Это также не завоевало популярность.
Итак, люди, использующие циклы событий, вероятно, решили, что время программиста стоит больше, чем процессорное время, и люди, использующие pthreads, вероятно, решили обратное, и люди, изучающие актеров и тому подобное, хотели бы ценить оба вида времени больше в высшей степени (явно безумный, вероятно, поэтому никто не слушает их).