Я читал документы по node.js о рабочем пуле и столкнулся с двумя терминами, которые, как я думал, оба одинаковы - worker pool
и libuv's threadpool
.
Вот точка путаницы (из URL-адреса документа node.js):
Это API модуля Node, которые используют этот рабочий пул:
I / O ресурсоемких
DNS: dns.lookup()
, dns.lookupService()
.
Файловая система: Все API файловой системы , за исключением fs.FSWatcher()
и явно синхронные, используют пул потоков libuv .
Вот мое понимание:
event loop
-> можно считать основной нитью
worker pool
-> который реализован libuv, поэтому в этом случае рабочий поток пула фактически является потоком libuv.
Итак, как рабочий пул делает что-то без потока libuv?