在Ubuntu下使用Node.js实现并发,可以采用以下几种方法:
const fs = require('fs').promises; async function readFiles() { try { const file1 = await fs.readFile('file1.txt', 'utf-8'); const file2 = await fs.readFile('file2.txt', 'utf-8'); console.log(file1, file2); } catch (error) { console.error(error); } } readFiles(); child_process模块允许你创建子进程,从而实现并发执行任务。const { spawn } = require('child_process'); const child1 = spawn('node', ['script1.js']); const child2 = spawn('node', ['script2.js']); child1.stdout.on('data', (data) => { console.log(`Child 1 output: ${data}`); }); child2.stdout.on('data', (data) => { console.log(`Child 2 output: ${data}`); }); worker_threads模块允许你在单个Node.js进程中运行多个线程,从而实现并发。const { Worker } = require('worker_threads'); const worker1 = new Worker('./worker1.js'); const worker2 = new Worker('./worker2.js'); worker1.on('message', (message) => { console.log(`Worker 1 message: ${message}`); }); worker2.on('message', (message) => { console.log(`Worker 2 message: ${message}`); }); async、bluebird等。这些库提供了许多实用的并发控制方法,如并行执行、串行执行、限制并发数量等。const async = require('async'); const tasks = [ () => fs.readFile('file1.txt', 'utf-8'), () => fs.readFile('file2.txt', 'utf-8'), () => fs.readFile('file3.txt', 'utf-8'), ]; async.parallel(tasks, (err, results) => { if (err) { console.error(err); return; } console.log(results); }); 通过以上方法,你可以在Ubuntu下的Node.js应用程序中实现并发。选择合适的方法取决于你的需求和场景。