1
我想知道是否有可能在調試中完成外部線程(我不介意它是不安全的方式,通過不推薦使用Thread.stop())。在java調試中可以在外部完成一個線程嗎?
我正在使用Netbeans 7.1.2,並且線程調試的選項是使電流,暫停,中斷,但沒有停止選項。
我想知道是否有可能在調試中完成外部線程(我不介意它是不安全的方式,通過不推薦使用Thread.stop())。在java調試中可以在外部完成一個線程嗎?
我正在使用Netbeans 7.1.2,並且線程調試的選項是使電流,暫停,中斷,但沒有停止選項。
你可以嘗試一下thread.stop()方法的insted。
class TestThread implements Runnable{
private Thread thread;
public TestThread()
{
thread=new Thread(this);
}
public void stopThread()
{
thread=null;
}
public void run()
{
while(thread!=null)
{
//Some Code here
}
}
}
class Main
{
public static void main(String args[])
{
TestThread tt=new TestThread();
//sleep for some time
tt.stopThread();
}
}
當你想停止線程調用stopThread()函數,如上面的例子。
爲什麼不打斷? – assylias
@assylias中斷只有在線程處於睡眠,等待,加入或可中斷通道時纔會起作用,但不會以其他方式進行。我認爲唯一的選擇是以編程方式進行......我不知道它是IDE限制還是JDK(缺少)功能 –
幾乎可以隨時捕獲中斷。如果你正在使用while循環循環你的run函數,你可以檢查中斷標誌作爲循環條件或循環中的某個地方。如果你正在調用諸如queue.put(...)的阻塞函數,它們都會在中斷時拋出InterruptedException。 – goblinjuice