Вот именно тем и мешает, что вместо нормальных потоков городится чёрт знает что, работающее в итоге в одном. Что в Twisted, что гринлеты в gevent параллелятся очень специфическим образом. Иногда это нормально. Иногда это большая головная боль, и нужна возможность использовать нормальные потоки ОС, способные эффективно выполняться на разных ядрах и параллелиться без явного использования логики сопрограмм или патчей к половине стандартной библиотеки.Нормальный архитектурный паттерн полноценного асинхронного фреймворка с реакторами всегда предполагает потоки. Достаточно вспомнить boost::asio. Реактор -- самое базовое понятие, но именно из-за GIL в асинхронных фреймворках реактор реализован не так, как обычно, а через одно место. Да, красиво, да, остроумно, но всё равно криво.
|