java的超时java容错重发机制制

您所在的位置: &
控制Java线程超时后中止的方案
控制Java线程超时后中止的方案
糗事一大把
这里使用JDK5+的java.util.concurrent包下的API实现,采用这种方式是相对比较安全的。下面我们来看看控制Java线程超时后中止的方案。
这里使用JDK5+的java.util.concurrent包下的API实现,采用这种方式是相对比较安全的。
实现效果:
启动一个任务,然后等待任务的计算结果同时设定一个超时时间,如果等待时间超出预设定的超时时间,则中止任务。
代码实现:
import&java.util.concurrent.C&& &import&java.util.concurrent.ExecutionE&& &import&java.util.concurrent.ExecutorS&& &import&java.util.concurrent.E&& &import&java.util.concurrent.F&& &import&java.util.concurrent.TimeU&& &import&java.util.concurrent.TimeoutE&& &&& &&&&&&& &public&class&TaskTimeoutDemo&{&& &&& &&&&&public&static&void&main(String[]&args)&{&& &&&&&&&&&System.out.println(&Start&...&);&& &&& &&&&&&&&&ExecutorService&exec&=&Executors.newCachedThreadPool();&& &&&&&&&&&&& &&&&&&&&&testTask(exec,&15);&&&&&&&&&&testTask(exec,&5);&&&& &&&&&&&&&exec.shutdown();&& &&&&&&&&&System.out.println(&End!&);&& &&&&&}&& &&& &&&&&public&static&void&testTask(ExecutorService&exec,&int&timeout)&{&& &&&&&&&&&MyTask&task&=&new&MyTask();&& &&&&&&&&&Future&Boolean&&future&=&exec.submit(task);&& &&&&&&&&&Boolean&taskResult&=&null;&& &&&&&&&&&String&failReason&=&null;&& &&&&&&&&&try&{&& &&&&&&&&&&&&&&&&&&&&&&&&&&taskResult&=&future.get(timeout,&TimeUnit.SECONDS);&& &&&&&&&&&}&catch&(InterruptedException&e)&{&& &&&&&&&&&&&&&failReason&=&&主线程在等待计算结果时被中断!&;&& &&&&&&&&&}&catch&(ExecutionException&e)&{&& &&&&&&&&&&&&&failReason&=&&主线程等待计算结果,但计算抛出异常!&;&& &&&&&&&&&}&catch&(TimeoutException&e)&{&& &&&&&&&&&&&&&failReason&=&&主线程等待计算结果超时,因此中断任务线程!&;&& &&&&&&&&&&&&&exec.shutdownNow();&& &&&&&&&&&}&& &&& &&&&&&&&&System.out.println(&\ntaskResult&:&&&+&taskResult);&& &&&&&&&&System.out.println(&failReason&:&&&+&failReason);&& &&&&&}&& &}&& &&& &class&MyTask&implements&Callable&Boolean&&{&& &&& &&&&&@Override&& &&&&&public&Boolean&call()&throws&Exception&{&& &&&&&&&&&&&&&&&&&&for&(int&i&=&0;&i&&&100L;&i++)&{&& &&&&&&&&&&&&&Thread.sleep(100);&&&&&&&&&&&&&&System.out.print('-');&& &&&&&&&&&}&& &&&&&&&&&return&Boolean.TRUE;&& &&&&&}&& &}&& &
运行结果:
Start&...&& &----------------------------------------------------------------------------------------------------&& &taskResult&:&true&& &failReason&:&null&& &---------------------------------------------&& &taskResult&:&null&& &failReason&:&主线程等待计算结果超时,因此中断任务线程!&& &End!&&&
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
又是一周匆匆而过。上周五、周六两天,2013年51CTO云计算架构师
再过一次生日,我就满七十岁了。而且正如大家印象中一样,像我这个年纪的...
十一长假归来上班,好像更累了;早上也越来越堵了。小
数据结构课程,貌似是大学计算机、网络、软件等专业的
JavaScript正凭借新型工具与功能提升以极度夸张的速度
本书是《网管第一课》系列图书中的第一本,是专门针对高校和培训机构编写的,其主要特点是内容细而精、针对性强。书中内容全是经
51CTO旗下网站Java编程中网络超时的简单处理
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Java编程中网络超时的简单处理
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口公司java面试题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
公司java面试题
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢}

我要回帖

更多关于 udp 超时重发 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信