我有一個多線程控制檯應用程序無休止地運行。現在我使用ctrl-c來結束它,但有時它會導致finally塊不被調用,並留下一些進程,即使在主java程序結束之後,原始程序也開始運行。正常結束基於控制檯的多線程程序
我發現這個答案#2
https://stackoverflow.com/a/3194586/492015
class MyThread extends Thread
{
volatile boolean finished = false;
public void stopMe()
{
finished = true;
}
public void run()
{
while (!finished)
{
//do dirty work
}
}
}
但由於我的程序是基於控制檯,怎麼會變成這樣申請嗎?我需要讓程序等待鍵盤輸入?所以如果我按'q'例如stopMe()會被調用。我將如何做到這一點?
當q按下時,等待控制檯輸入的過程如何設置爲true? – Breeze
看看這個問題http://stackoverflow.com/q/1611931/1521049 – Thomas