在离开主线程之前安全地杀死子线程(无限循环)

时间:2012-10-19 10:17:48

标签: java multithreading parent-child

我有一个main函数,它生成了两个线程来更新JDBC SQL结果。专门工作的子线程处于无限循环中,并在五分钟后更新结果。我想在退出主线之前,应该杀死孩子。

最好的程序是什么?

1 个答案:

答案 0 :(得分:1)

所以我假设您的代码是这样的:

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();
相关问题