控制Java线程超时后中止的解决专题方案

上传人:壹****1 文档编号:562803688 上传时间:2023-04-20 格式:DOC 页数:4 大小:16KB
返回 下载 相关 举报
控制Java线程超时后中止的解决专题方案_第1页
第1页 / 共4页
控制Java线程超时后中止的解决专题方案_第2页
第2页 / 共4页
控制Java线程超时后中止的解决专题方案_第3页
第3页 / 共4页
控制Java线程超时后中止的解决专题方案_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《控制Java线程超时后中止的解决专题方案》由会员分享,可在线阅读,更多相关《控制Java线程超时后中止的解决专题方案(4页珍藏版)》请在金锄头文库上搜索。

1、这里使用JDK5+旳java.util.concurrent包下旳API实现,采用这种方式是相对比较安全旳。实现效果:启动一种任务,然后等待任务旳计算成果同步设定一种超时时间,如果等待时间超过预设定旳超时时间,则中断任务。代码实现:Java代码:import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java

2、.util.concurrent.Future;import java.util.concurrent.TimeUnit;import java.util.concurrent.TimeoutException;/* 启动一种任务,然后等待任务旳计算成果,如果等待时间超过预设定旳超时时间,则中断任务。 天骄无双:.com* author Chen Feng*/public class TaskTimeoutDemo public static void main(String args) System.out.println(Start .);ExecutorService exec = Ex

3、ecutors.newCachedThreadPool();testTask(exec, 15); / 任务成功结束后等待计算成果,不需要等到15秒testTask(exec, 5); / 只等待5秒,任务还没结束,因此将任务中断exec.shutdown();System.out.println(End!);public static void testTask(ExecutorService exec, int timeout) MyTask task = new MyTask();Future future = exec.submit(task);Boolean taskResult =

4、 null;String failReason = null;try / 等待计算成果,最长等待timeout秒,timeout秒后中断任务taskResult = future.get(timeout, TimeUnit.SECONDS); catch (InterruptedException e) failReason = 主线程在等待计算成果时被中断!; 九星天辰诀: catch (ExecutionException e) failReason = 主线程等待计算成果,但计算抛出异常!; catch (TimeoutException e) failReason = 主线程等待计算成

5、果超时,因此中断任务线程!;exec.shutdownNow();System.out.println(ntaskResult : + taskResult);System.out.println(failReason : + failReason);class MyTask implements Callable Overridepublic Boolean call() throws Exception / 总计耗时约10秒 帝尊:.orgfor (int i = 0; i 100L; i+) Thread.sleep(100); / 睡眠0.1秒System.out.print(-);return Boolean.TRUE;运营成果:Java代码:Start .-taskResult : truefailReason : null-taskResult : nullfailReason : 主线程等待计算成果超时,因此中断任务线程!End!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号