0
我有一個主函數,它已經生成了兩個用於更新JDBC SQL結果的線程。子線程專有工作處於無限循環並在五分鐘後更新結果。我想在退出主線程之前,應該殺死孩子的腳步。在離開主線程前安全地終止子線程(infinte循環)
什麼是最好的程序?
我有一個主函數,它已經生成了兩個用於更新JDBC SQL結果的線程。子線程專有工作處於無限循環並在五分鐘後更新結果。我想在退出主線程之前,應該殺死孩子的腳步。在離開主線程前安全地終止子線程(infinte循環)
什麼是最好的程序?
所以我假設你的代碼是這樣的:
class ThreadTask implements Runnable {
public void run() {
while(true) {
...
}
}
}
你可以做的是實現一個標誌:
class ThreadTask implements Runnable {
private volatile boolean shouldStop = false;
public void run() {
while(!shouldStop) {
...
}
}
public void stopTask() {
shouldStop = true;
}
}
然後在主線程:
ThreadTask task = new ThreadTask();
Thread t = new Thread(task);
t.start();
...
task.stopTask();
t.join();
我是否必須使用鎖定變量shouldStop –
沒問題,我搜索了volatile的關鍵字。它正在照顧這一點。謝謝 –
@Prannoy Mittal:代碼適合你嗎? – Tudor