node.js 运用worker_threads多线程每隔五秒输出日志
时间: 2023-05-11 14:05:54 浏览: 83
可以使用以下代码实现:
```javascript
const { Worker } = require('worker_threads');
function runService(workerData) {
return new Promise((resolve, reject) => {
const worker = new Worker('./worker.js', { workerData });
worker.on('message', resolve);
worker.on('error', reject);
worker.on('exit', (code) => {
if (code !== 0)
reject(new Error(`Worker stopped with exit code ${code}`));
});
});
}
async function run() {
const workerData = { interval: 5000 };
const result = await runService(workerData);
console.log(result);
}
run();
```
其中,`worker.js` 是一个独立的 JavaScript 文件,用于处理具体的多线程逻辑。在这个文件中,可以使用 `setInterval` 函数每隔一定时间输出日志,例如:
```javascript
const { workerData, parentPort } = require('worker_threads');
setInterval(() => {
parentPort.postMessage('Logging...');
}, workerData.interval);
```
这样,每隔五秒钟就会输出一条日志。