Как низкоуровневые операции распределяются по потокам?

Есть в node.js Event Loop. А ещё в нём есть запросы к C++ библиотекам. Когда к библиотеке делается запрос, EL продолжает работу с другими событиями в стеке. Но как организуется одновременное выполнение библиотечных сервисов и основного цикла событий? Каждый запрос создаёт отдельный поток, или может создаётся актор под каждую службу, а может всеми службами заведует движок, который разово создаёт акторов по какой-то оптимизированной схеме?

Хочется глубже понять, как идёт работа с потоками на системном уровне. Также подойдут любые интересные решения на эту тему из серии "как могло бы быть".
  • Вопрос задан
  • 837 просмотров
Решения вопроса 1
Вот есть неплохая статья по этой теме.
И вот здесь и здесь более детально.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dummyman
@dummyman
диссидент-схизматик
Не понимаю вопроса. Хотите глубже понять node - смотрите исходные коды. Не существует более эффективного способа.
EventLoop - есть не что иное, как
while(1) {
   // а здесь тысячи if и switch
}

Но как организуется одновременное выполнение библиотечных сервисов и основного цикла событий? Каждый запрос создаёт отдельный поток...

... это фантастика. Node выполняет работу в одном потоке одного процесса и может просить систему запускать еще процессов, все это описано тут.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы