关于线程池中线程失败的问题

隐藏起来 2013-04-25 09:36:40
我创建了一个Excutor,往里面扔了3个callable并将引用保存到一个map中,过一段时间来查看线程执行结果的时候,发现有一个任务失败了。伪代码如下:
装入:
for(..){
Future<> future = exec.submit(task);
map.put(taskName, future);
}
查看执行结果
while(Future<> future : map.entry){
future .get();
}
这时,我发现这三个线程中有一个线程执行失败了,而业务又不允许有失败,因此必须重新执行。此时该怎么处理比较恰当又代码没那么臃肿繁琐呢?
求大神解答,谢谢
...全文
246 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞火流云 2013-06-11
  • 打赏
  • 举报
回复
引用 2 楼 dchua123 的回复:
求助求助,特别需要帮助啊
是的,判断下结果呗,错了就重新执行。
普世编程技术 2013-06-11
  • 打赏
  • 举报
回复
这不是线程的问题,而是你的任务失败后能不能重做的问题。 就算不用线程,你的任务失败了,照样不能重做。
隐藏起来 2013-04-26
  • 打赏
  • 举报
回复
引用 3 楼 leecyz 的回复:
如果他只执行一次,那需要标志位存储起来。 如果可执行多次,重复执行就行了,没有一个东西是保证不失败的。
多次尝试的时候怎么尝试比较好?
leecyz 2013-04-26
  • 打赏
  • 举报
回复
如果他只执行一次,那需要标志位存储起来。 如果可执行多次,重复执行就行了,没有一个东西是保证不失败的。
隐藏起来 2013-04-26
  • 打赏
  • 举报
回复
求助求助,特别需要帮助啊
隐藏起来 2013-04-25
  • 打赏
  • 举报
回复
求大神,自己先顶一下

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧