Hit_Heart 2017-10-31 01:07
浏览 964

多线程Callable和Future编写一个对应的工具类

代码如下:
public Map method(final String nsrdzdah,final String nd,.....){
Map tax=new HashMap<>();
final ExecutorService executor=Executors.newCachedThreadPool();
fianl ArrayList>> futures=new ArrayList<>();

funtures.add(executor.submit(new Callable<Map<String,Object>>(){
    @Override
    public Map<String,Object>  call() throws Exception{
        Map<String,Object> taxpayerCreLev = taxpayerCreLev(nsrdzdah,nd,lpbm);
        return  taxpayerCreLev;
    }
}));
funtures.add(executor.submit(new Callable<Map<String,Object>>(){
    @Override
    public Map<String,Object>  call() throws Exception{
    Map<String,Object> decCol = decCol(nsrdzdah,nd,lpbm);
        return  decCol;
    }
}));
funtures.add(executor.submit(new Callable<Map<String,Object>>(){
    @Override
    public Map<String,Object>  call() throws Exception{
        Map<String,Object> illegalInforGroup = illegalInforGroup(nsrdzdah,sssq_q,sssq_z,lpbm);
        return  illegalInforGroup;
    }
}));
funtures.add(executor.submit(new Callable<Map<String,Object>>(){
    @Override
    public Map<String,Object>  call() throws Exception{
        Map<String,Object> taxesOwed = taxesOwed(nsrdzdah,nd,syqzh);
        return  taxesOwed;
    }
}));

while(true){
    if(futures.size()==0){
        break;
    }
    .
    .
    .
    .
    .

}

现在我需要把线程池这一部分的内容从该service层提取出来,做一个工具类也可以,其他实现也可以,自己试过用ThreadPoolExecutor这个类来写工具类,但是该类构造器内部需要一个队列,查看该队列存放的数据类型,只能是Runnable接口,而不能是我需要的Callable接口的。求助,求大神指导其他写法。C币不够了,见谅!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)
    • ¥15 keil里为什么main.c定义的函数在it.c调用不了