读书人

Shutdown Hook事例

发布时间: 2012-07-26 12:01:08 作者: rapoo

Shutdown Hook例子

钩子例子:

当Java程序非法退出时,这个可以用来在写日志等操作,这样就能知道我什么时候退出的,或者是假死机状态的时候及调用强制结束的时候用。

?

1.需要一个没启动的线程。

2.调用 Runtime.getRuntime().addShutdownHook(t);

参数:

hook - 一个已初始化但尚未启动的 Thread 对象

抛出:

IllegalArgumentException - 如果指定的挂钩已注册,或者可以确定挂钩正在运行或者已运行完毕

IllegalStateException - 如果虚拟机已经处于关闭进程中

SecurityException - 如果安全管理器存在并且拒绝 RuntimePermission("shutdownHooks")

?

public class ShutdownDemo {public ShutdownDemo() {Thread t = new ShutdownHookThread("Here I am !!!");Runtime.getRuntime().addShutdownHook(t);System.out.println("Now shut me down …");System.exit(0);while (true) {System.out.print(".");try {Thread.sleep(300);} catch (InterruptedException ie) {}}}public static void main(String args[]) {new ShutdownDemo();}}class ShutdownHookThread extends Thread {protected String message;public ShutdownHookThread(String message) {this.message = message;}public void run() {System.out.println("ShutdownHookThread--");System.out.println(message);}}

?

读书人网 >软件架构设计

热点推荐