当前位置:首页 > JavaScript

js怎么实现并行

2026-03-01 13:43:16JavaScript

并行实现方法

在JavaScript中实现并行操作可以通过多种方式,以下是一些常见的方法:

Web Workers

Web Workers允许在后台线程中运行脚本,避免阻塞主线程。创建一个Worker实例并传递消息即可实现并行计算。

// 主线程代码
const worker = new Worker('worker.js');
worker.postMessage({ data: 'some data' });
worker.onmessage = (event) => {
  console.log('Received from worker:', event.data);
};

// worker.js
self.onmessage = (event) => {
  const result = processData(event.data);
  self.postMessage(result);
};

Promise.all

Promise.all可以并行执行多个Promise,等待所有Promise完成后再处理结果。

const promise1 = fetch('url1');
const promise2 = fetch('url2');
const promise3 = fetch('url3');

Promise.all([promise1, promise2, promise3])
  .then((responses) => {
    console.log('All responses:', responses);
  })
  .catch((error) => {
    console.error('Error:', error);
  });

Async/Await

结合Promise.allasync/await语法,可以更简洁地实现并行操作。

async function fetchAllData() {
  const [data1, data2] = await Promise.all([
    fetch('url1').then(res => res.json()),
    fetch('url2').then(res => res.json())
  ]);
  console.log(data1, data2);
}

Child Processes (Node.js)

在Node.js环境中,可以使用child_process模块创建子进程实现并行计算。

const { fork } = require('child_process');
const child = fork('child.js');

child.send({ data: 'some data' });
child.on('message', (result) => {
  console.log('Result from child:', result);
});

// child.js
process.on('message', (data) => {
  const result = processData(data);
  process.send(result);
});

Cluster模块 (Node.js)

cluster模块允许创建多个工作进程共享同一个服务器端口,适合处理高并发请求。

js怎么实现并行

const cluster = require('cluster');
const http = require('http');

if (cluster.isMaster) {
  for (let i = 0; i < 4; i++) {
    cluster.fork();
  }
} else {
  http.createServer((req, res) => {
    res.end('Hello from worker');
  }).listen(8000);
}

注意事项

  • Web Workers和Child Processes适用于CPU密集型任务,避免阻塞主线程。
  • Promise.all适合IO密集型任务,如并行网络请求。
  • 并行操作可能增加内存和CPU消耗,需根据实际场景权衡。

标签: js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback) {…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现复制功能实现

js实现复制功能实现

使用document.execCommand方法(传统方式,已逐渐被弃用) 传统方式通过document.execCommand('copy')实现复制功能,需先选中文本。以下是一个完整示例: fu…