JAVA里怎么让2个FOR循环并发同时执行

在一个函数里的2个FOR循环怎么让他们同时开始循环而不是按照书写的顺序单独顺序循环?不行的话改怎么做达到这个效果... 在一个函数里的2个FOR循环怎么让他们同时开始循环而不是按照书写的顺序单独顺序循环?不行的话改怎么做达到这个效果 展开
 我来答
mzocean
2013-04-22 · TA获得超过1083个赞
知道小有建树答主
回答量:492
采纳率:33%
帮助的人:469万
展开全部
不能在同一个方法内并发运行两个for循环,因为在方法体内是顺序执行的,前一个for不跳出,后一个for是不能执行的。
如果想要并发执行,需要使用Thread类,详情可以去看关于java线程的知识。
yazhbd
2013-04-22 · TA获得超过126个赞
知道答主
回答量:83
采纳率:50%
帮助的人:31.6万
展开全部
一个函数里不可能让两个for循环同时开始运行,在一个函数里面它始终是从上往下依次执行的,要同时运行两个for循环你只有开线程了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ponexi
2019-09-09
知道答主
回答量:5
采纳率:100%
帮助的人:2万
展开全部
我的理解是,题主想让一个for语句的循环并发。
如果理解没错的话,这样创建线程应该可以帮到你。
package intellif.dzw;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.Future;

public class TestThread {

private static final ForkJoinPool THREAD_POOL = new ForkJoinPool(Runtime.getRuntime().availableProcessors() + 4);// 线程池

public void testThread() {
List<String> list=new LinkedList<>();
List<Future<?>> tasklist = new ArrayList<>();
for (String id : list) {
tasklist.add(THREAD_POOL.submit(() -> {// 创建线程
// 循环体
}));
}
tasklist.forEach(FunctionUtil::waitTillThreadFinish);// 等待所有线程结束
}
}

class FunctionUtil {
public static Object waitTillThreadFinish(Future<?> thread) {
try {
return thread.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
return Optional.ofNullable(null);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西南一少
2013-04-22
知道答主
回答量:21
采纳率:0%
帮助的人:9.1万
展开全部
呃,恕我愚昧,同一个cpu在同一时刻能执行2个指令,很明显不可能。同理,同一个函数里不可能做到2个for循环一起的,无论是并发还是并行。如果真有,记得回我一声,我也学习下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jjxelloss
2013-04-22 · TA获得超过422个赞
知道答主
回答量:144
采纳率:0%
帮助的人:88.1万
展开全部
不明白这样有什么意义呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式