рабочий пул против пула потоков libuv в node.js - PullRequest
0 голосов
/ 05 мая 2018

Я читал документы по 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?

1 Ответ

0 голосов
/ 05 мая 2018

«Рабочий пул» и «пул потоков libuv» одинаковы. Причина, по которой вы не понимаете, связана с формулировкой этого предложения. Я сам не являюсь носителем английского языка и понимаю почему.

Это:

Файловая система: Все API файловой системы, кроме fs.FSWatcher() и явно синхронные, используют пул потоков libuv.

вместо этого можно сформулировать так:

Файловая система: Все API файловой системы используют пул потоков libuv, кроме fs.FSWatcher() и явно синхронных.

Лучшую формулировку можно увидеть на документах для варианта UV_THREADPOOL_SIZE cli, как показано здесь:

API Node.js, которые используют пул потоков:

  • ...
  • все API-интерфейсы zlib, кроме явно синхронных
...