本文共 1296 字,大约阅读时间需要 4 分钟。
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 stub Main 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 block e.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."); }}
转载地址:http://fthii.baihongyu.com/