关闭超时的java线程 --利用join和interrupt方法
2009-05-26 14:32
561 查看
httpclient中就提供了这样一个class- timeoutcontroller(位于org.Apache.commons.httpclient.util包内)查看该class的源代码可知其实现细节:
public static void execute(thread task, long timeout) throws timeoutexception {
task.start();
try {
task.join(timeout);
} catch (interruptedexception e) {
/* if somebody interrupts us he knows what he is doing */
}
if (task.isalive()) {
task.interrupt();
throw new timeoutexception();
}
}
其实就是通过join()和interrupt()方法实现这种功能,文档中强调了task的interrupt()方法必须重写(override)
public static void execute(thread task, long timeout) throws timeoutexception {
task.start();
try {
task.join(timeout);
} catch (interruptedexception e) {
/* if somebody interrupts us he knows what he is doing */
}
if (task.isalive()) {
task.interrupt();
throw new timeoutexception();
}
}
其实就是通过join()和interrupt()方法实现这种功能,文档中强调了task的interrupt()方法必须重写(override)
相关文章推荐
- java 多线程(1) join() / interrupt() 打断sleep() / stop() / run() / 线程停止的方法
- Java并发编程之线程生命周期、守护线程、优先级、关闭和join、sleep、yield、interrupt
- Java线程--interrupt join yield setDaemon常用方法的使用
- 线程的笔记1 wait yield join interrupt deamon 死锁使用方法
- java线程中join方法原理,以及守护线程的使用
- Java中的线程Thread方法之---interrupt()
- java web 中判断方法是否运行超时以及运行超时后的再次调用(用到了线程相关的知识)
- Java线程中yield与join方法的区别
- java中线程阻塞之sleep、suspend、join、wait、resume、notify方法解析(一)
- thinkinjava21.4.4----java中interrupt和interrupted方法的使用和线程退出的时机
- java 线程协作 join方法
- Java多线程中join方法_保证线程执行完后再销毁activity
- java线程interrupt()方法和线程终止方式
- java线程wait,notify,yield,join方法
- Java线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别
- 停止Java线程,小心interrupt()方法
- 黑马程序员:如何结束线程及线程中的其他方法介绍:interrupt()、join()、yield()等方法
- Java通过join方法来暂停当前线程
- java基础学习__多线程(停止线程,守护线程,join方法)
- 停止Java线程,小心interrupt()方法