如题。现在有一个任务就是1、客户端浏览器发送一个http请求给servlet
2、servlet接到请求将这个使用10个子线程去处理
3、10个子线程处理完成后将结果汇总返回给你客户端现在在要考虑的问题是这10个子线程如果有一个出现异常或超时了怎么处理,
怎么分派这个10个子线程去执行任务,执行完成后返回的结果该如何处理等等...小菜我现在是一头雾水,望大虾指点一二,必定全分奉上,最好给个demo

解决方案 »

  1.   

    需求看起来挺奇怪了,如果是奥分为10个子线程处理,说明这是个大任务处理,按理来说就不应该用同步业务模式,应该走异步业务模式(或者批处理),但你这里又要等待“10个子线程处理完成后将结果汇总返回给客户端”。莫非这边处理个十几二十分钟,客户端也傻傻等?
    实在需要可以考虑用Map/Reduce框架。直接要代码的话,看看有木有好心人帮你写了。
      

  2.   

    http请求是无状态的
    怎么返回给客户端?
    而且起子线程
      

  3.   

    你这个是文件的下载还是上传?
     这样的话可以采用CountDownLatch(计数器)和ExecutorService(线程池)来管理这个线程,
    首先实例化一个CountDownLatch为10个线程,每一个线程成功执行完了调用它的countDown()将计数器减1
      

  4.   


    恩,,老大说将来要做云计算,数据量会很大,那异步业务模式是怎么一回事了?有木有这方面的教程?或demo,大大指点一下啊
      

  5.   


    不是上传也不是下载的干活,是后台数据库数据量很大的干活,如果是单线程处理掉话很要很长时间,现在要做的就是使用多线程从多台服务器上取数据,目的就是这样的,CountDownLatch不是很熟,我去看看