webForumDet fria alternativet
Logga in / Bli medlem

Känna av när programmet avbryts

Java

2 svar · 641 visningar · startad av nitro2k01

Medlem sedan aug. 20039 340 inlägg
Frågan#1

Jag kör ett program i konsolen, och jag undrar om det går att känna av om det avslutas med Ctrl+C, istället för att det bara dör som nu.

Medlem sedan aug. 20021 752 inlägg
Medlem sedan aug. 20039 340 inlägg
#3

Här är ett lyckat experiment:

class ThreadTest extends Thread{
    boolean exit = false;
    boolean exitSignal = false;

    public static void main(String[]s){
	new ThreadTest();
    }

    ThreadTest(){
	this.start();
	// register the shutdown hook
    
	Runtime.getRuntime().addShutdownHook(new Thread() {
                public void run() {
                    System.out.println("In hook!");
		    exit = true;
		    while(!exitSignal){;}
		    System.out.println("Now leaving hook!");
                }
            });;
    }
    
    public void run(){
	System.out.println("Thread is running!");
	while(!exit){;}
	exitSignal = true;
	System.out.println("Thread is dying!");
    }
}
266 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)