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循环进行遍历,一旦某一个线程找到解,立刻通知其他线程退出欢迎分享,转载请注明来源:内存溢出
评论列表(0条)