如何在for循环中使用多线程

如何在for循环中使用多线程,第1张

import java.util.concurrent.Executor

import java.util.concurrent.Executors

public class Test {

private final static Executor executor = Executors.newCachedThreadPool()//启用多线程

public static void main(String[] args) {

for(int i=0i<=3i++){

final int j=i //关键是这一句代码,将 i 转化为 j,这样j 还是final类型的参与线程

executor.execute(new Runnable() {

@Override

public void run() {

try{

System.out.println(j)

}catch(Exception e){

}

}

})

}

}

}

你把线程放到for循环里比较危险,当采取异步的时候,一旦for循环次数太多,那么你的线程数量会大量增加如果你只是想每一次的循环里用三个线程去做,那么实际上也是要等待进程结束的,同时等待三个线程貌似实现不了吧比较好的解决方案是声明三个线程,然后每个线程中用一个for循环进行遍历,一旦某一个线程找到解,立刻通知其他线程退出


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11961997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存