我是靠谱客的博主 冷傲过客,最近开发中收集的这篇文章主要介绍java 多线程 结果汇总_多线程ThreadPoolExecutor的submit多线程处理一些结果汇总,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Future>> f = pool.submit(IPThread, userinput);

int j = 0;

for (int i = 0; i < flist.size(); i++) {//等待所有提交线程结束

Future>> f = flist.get(i);

try{

List> result=f.get();//等待线程执行完成,没有设置超时。一直等待任务完成。

if (result!=null||result.size()!=0) {

j++;

}

}

catch (InterruptedException e) {

f.cancel(true);

} catch (ExecutionException e) {

f.cancel(true);

}

}

1、问题介绍

项目中遇到一个棘手的问题,就是多线程处理一些结果。但是最后要获得每个线程运行的结果汇总。

2、解决思路

思路是这样子的,有一个主线程用来调用这些子线程。每个线程提交后,都会向static

List>> result 变量添加运行结果,因为只是添加所以不涉及到线程安全问题。这样就可以完美解决了。当然要注意要每次请求都要新生成新实例,要不然,可能result会存在线程安全问题,通过设置scope为request解决。

scope="request" />

3、pool.submit(IPThread, userinput) 介绍一下

pool.submit(IPThread, userinput); 这个家伙有点奇怪,如果线程代码里面出现一定的情况是可以将线程的运行结果返回到userinput里面的,之前试了一下是当userinput是hashmap类型的时候可以。但是查询API解释说不可以返回的啊,实在是很奇怪。

###线程代码

@Override

public void run() {

Map map = queryIP();

if (map != null && map.size() > 0)

result.putAll(map);

}

最后

以上就是冷傲过客为你收集整理的java 多线程 结果汇总_多线程ThreadPoolExecutor的submit多线程处理一些结果汇总的全部内容,希望文章能够帮你解决java 多线程 结果汇总_多线程ThreadPoolExecutor的submit多线程处理一些结果汇总所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部