« | October 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9718490 建立时间:2004年12月20日 |

| |
[java语言]运行超时退出的问题研究线程 原创空间, 文章收藏, 软件技术, 电脑与网络
邢红瑞 发表于 2006/11/5 15:50:31 |
一个方法可能会执行很长时间。如果操作时间过长,就中止它。使用jdk5很简单/** * Created by IntelliJ IDEA. * User: hongruixing * Date: 2006-10-13 * Time: 16:51:29 * To change this template use File | Settings | File Templates. */
import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.ScheduledFuture;import java.util.concurrent.TimeUnit;
public class Test { public static void main(String[] args) { //每次新建一个ScheduledThreadPool,容量只有一个线程即可 final ScheduledExecutorService scheduler = Executors .newScheduledThreadPool(1);//初始化你的执行体Excutor实现Runnable Runnable daemonTask = new Runnable() { public void run() { try { Thread.sleep(10000); System.out.println("我是邢红瑞"); } catch (InterruptedException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } } };
final ScheduledFuture beeperHandle = scheduler .schedule(daemonTask, 0L, TimeUnit.SECONDS);
scheduler.schedule(new Runnable() { public void run() { beeperHandle.cancel(true); scheduler.shutdown(); } }, 9L, TimeUnit.SECONDS); }} |
|
|