【代码积累】JVM shutdown hook

来源:互联网 发布:淘宝店铺优惠券金额 编辑:程序博客网 时间:2024/06/06 07:06
import org.omg.SendingContext.RunTime;public class Main extends Thread{private volatile boolean isExit = false;private volatile static boolean isRefresh = false;private static Main mainserver= null;public static final Object mainLock = new Object();public static Main getInstance() {if( null == mainserver ) {synchronized(Main.class) {if( null == mainserver ) {mainserver = new Main();}}}return mainserver;}public static void main(String[] args) {// TODO Auto-generated method stubMain servermain = Main.getInstance();while(!servermain.isExit) {synchronized(mainLock) {System.out.println("Starting server main!!!");Runtime.getRuntime().addShutdownHook(servermain); /*hook can be registered only once.*/try {//System.exit(0);  /*Run this to exit JVM in order to call the hook*/mainLock.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}/*refresh,set isExit false*/if(isRefresh) {isRefresh = false;servermain.isExit = false;System.out.println("Restarting main server!");}System.out.println("Terminate the main server.After while circle.");}}}public void run() {System.out.println("Terminate the main server.");}}

原创粉丝点击