【发布时间】:2019-11-16 19:42:17
【问题描述】:
有一个 nodejs 模块可以让你限制并发承诺的数量:
https://github.com/sindresorhus/p-queue
这是否使用多个线程?
来自官方页面的示例:
const {default: PQueue} = require('p-queue');
const got = require('got');
const queue = new PQueue({concurrency: os.cpus().length});
(async () => {
await queue.add(() => got('sindresorhus.com'));
console.log('Done: sindresorhus.com');
})();
(async () => {
await queue.add(() => got('ava.li'));
console.log('Done: ava.li');
})();
(async () => {
const task = await getUnicornTask();
await queue.add(task);
console.log('Done: Unicorn task');
})();
它会在不同的 cpu 线程中运行上述每个异步函数吗?
【问题讨论】:
-
只是好奇——什么时候可以在 JavaScript 中进行多线程?
-
idk.. 我正在尝试找到一种使用多线程的方法,但到目前为止我发现的所有内容都需要进程之间的某种通信。似乎没有办法从同一个脚本轻松地做到这一点,因为有共享变量等等......快到 2020 年了,cpus 有大约 20 个核心,我们仍然不能全部使用它们
-
我建议在这里阅读异步和线程之间的区别:stackoverflow.com/questions/34680985/…
-
@Alex "我正在尝试找到一种使用多线程的方法" - 为什么?你的目标是什么?
-
让我的应用使用所有 cpu 核心
标签: javascript node.js multithreading promise