我有一個運行一個Runnable,看起來像一個線程:停止一個線程只有一個操作
Runnable run = new Runnable() {
@Override
public void run() {
functionCall();
}
};
Thread thread = new Thread(run);
thread.start();
void functionCall() {
for (int i=0; i<1000000; i++) System.out.println(i);
}
而且我想阻止它無論發生什麼。我已經嘗試過thread.interrupt()
,但我還沒有能夠使它工作,因爲functionCall()
方法並不真的依賴於我(我不知道里面的功能,這只是一個例子)。
據我所見,每個人都使用一個易變的布爾變量來檢查它,但這個線程只執行一次,所以它不是我真正需要的。
恐怕這不是線程在Java中的工作方式。如果代碼對中斷沒有反應,那麼你可以做的事情不多。 – Thilo 2013-05-02 09:32:37
@Thilo _「沒有太多你可以做」_?那麼他能做些什麼呢? – Kai 2013-05-02 09:34:18
確保你正在中斷正確的線程 - 很容易意外打斷你自己的線程,而不會注意到你的錯誤。 – OldCurmudgeon 2013-05-02 09:34:28