2012-12-21 38 views
1

我想知道是否有可能在調試中完成外部線程(我不介意它是不安全的方式,通過不推薦使用Thread.stop())。在java調試中可以在外部完成一個線程嗎?

我正在使用Netbeans 7.1.2,並且線程調試的選項是使電流,暫停,中斷,但沒有停止選項。

+3

爲什麼不打斷? – assylias

+0

@assylias中斷只有在線程處於睡眠,等待,加入或可中斷通道時纔會起作用,但不會以其他方式進行。我認爲唯一的選擇是以編程方式進行......我不知道它是IDE限制還是JDK(缺少)功能 –

+0

幾乎可以隨時捕獲中斷。如果你正在使用while循環循環你的run函數,你可以檢查中斷標誌作爲循環條件或循環中的某個地方。如果你正在調用諸如queue.put(...)的阻塞函數,它們都會在中斷時拋出InterruptedException。 – goblinjuice

回答

-1

你可以嘗試一下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()函數,如上面的例子。

相關問題