整个过程
1、在运行的线程中设置个了一个除数为0线程
2、线程池调用这个线程,通过futrue.get()方法获取到异常后,重新提交任务。
问题:现在调用futrue.get()时 程序就不在继续向下运行,此时异常信息也已经输出,应该怎么处理呢?
现在是想 线程池中 如果线程发生异常 则重新提交任务 现在是 出现异常后 通过 futrue.get() 一直堵塞,捕获异常后,又不知改如何 重新提交任务?
追答get方法会一直阻塞到线程结束。 就是你的get方法得到值的时候,你的线程已经不存在了。
你如果想在线程里捕获异常,然后重新进行任务,那就是线程中的事情,跟futrue.get没有关系;
或则你通过get的返回值,重新new这个线程,重新添加到线程池中执行。
实际应用中,是通过get()返回值 后重新 new 这个线程 还是直接在线程中处理好呢
追答如果可以,直接处理效率更好点。
您是 为了蹭财富值吗
追答你试试不就知道可以不
追问在异常里面确实可以捕捉到,但应该怎么重新提交任务呢?
追答你在catch中重新执行方法不就可以了么,但是有个危险变成死循环,做一个标志位执行几遍还报错的话就跳出循环吧
建议看看java 中 try catch finally 的用法