Я только что узнал, что жемчужина Node.js libuv использует систему блокировки вызывает файловые операции. Асинхронное поведение реализовано с помощью потоков! В связи с этим возникает два вопроса (меня только волнует Unix):
- Почему он не использует неблокирующие вызовы файловой системы, как это делается для сети?
- Если есть миллион ожидающих чтения файлов, он, вероятно, не запустит миллион потоков... Что делает libuv??