全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 998|回复: 16

js如何多线程执行for语句

[复制链接]
发表于 2023-12-15 09:49:46 来自手机 | 显示全部楼层 |阅读模式
需要使用for循环处理大量数据,我是这么写的,数据量大的时候很耗费时间。18cm的mjj有没有什么办法能让下面几个for循环并行执行。
for(var i = 0; ; i++) {
if(条件1) {
语句;
break:}}
for(var j = 0; ; j++) {
if(条件2) {
语句;
break:}}
for(var k = 0; ; k++) {
if(条件3) {
语句;
break:}}
发表于 2023-12-15 11:07:07 | 显示全部楼层
把你的 for 循环写到一个 Promise 里,然后Promise.all
发表于 2023-12-15 09:59:05 | 显示全部楼层
web worker ,可以参考mdn
发表于 2023-12-15 09:50:36 | 显示全部楼层
你这是什么环境,node还是browser?
 楼主| 发表于 2023-12-15 09:52:57 来自手机 | 显示全部楼层
flyqie 发表于 2023-12-15 09:50
你这是什么环境,node还是browser?

browser
发表于 2023-12-15 09:53:05 | 显示全部楼层
setTimeout
发表于 2023-12-15 09:54:33 | 显示全部楼层
浏览器环境下,js只能单线程执行,想要多线程执行只能使用serviceworker
发表于 2023-12-15 09:54:51 来自手机 | 显示全部楼层
问gpt直接给你写出代码
发表于 2023-12-15 09:56:10 | 显示全部楼层
异步promise
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
发表于 2023-12-15 09:56:20 | 显示全部楼层
要同时执行多个for循环,可以使用多线程或异步编程的方式。以下是使用多线程的示例代码:
  1. // 创建一个线程来执行第一个for循环
  2. var thread1 = new Thread(function() {
  3.   for(var i = 0; ; i++) {
  4.     if(条件1) {
  5.       语句;
  6.       break;
  7.     }
  8.   }
  9. });

  10. // 创建一个线程来执行第二个for循环
  11. var thread2 = new Thread(function() {
  12.   for(var j = 0; ; j++) {
  13.     if(条件2) {
  14.       语句;
  15.       break;
  16.     }
  17.   }
  18. });

  19. // 创建一个线程来执行第三个for循环
  20. var thread3 = new Thread(function() {
  21.   for(var k = 0; ; k++) {
  22.     if(条件3) {
  23.       语句;
  24.       break;
  25.     }
  26.   }
  27. });

  28. // 启动线程
  29. thread1.start();
  30. thread2.start();
  31. thread3.start();
复制代码
发表于 2023-12-15 10:00:19 来自手机 | 显示全部楼层
gpt回复如下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-9 13:57 , Processed in 0.090975 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表