【发布时间】:2015-05-27 12:44:06
【问题描述】:
我制作了一个带有 GUI 的 java 程序,我想要一个停止按钮功能,当用户单击停止按钮时,程序必须停止。
在我的程序中,主线程启动其他 10 个线程,我希望每当单击停止按钮时,所有 10 个线程都必须在主线程之前停止。
其次,我还希望每当这 10 个线程中的任何一个线程停止时,它必须首先关闭它在连接到数据库等之前打开的所有资源。
我已经实现了........所回答的代码
现在有一个问题。
我的线程类是这样的:
public class ParserThread implements Runnable {
private volatile boolean stopped = false;
public void stopTheThread() {
stopped = true;
}
:
:
}
下面是从函数start()启动10个线程的主线程
public class Main() {
Thread [] threads;
public void start() {
for(int i = 0; i < 10; i++) {
threads[i] = new Thread(new ParserThread());
}
}
public void stop() {
// code to stop all the threads
}
}
现在我想调用 ParserThread 的 stop 方法设置“stopped = true”来停止线程。我希望为所有 10 个线程完成此操作。
如何调用该停止方法。我希望它在 Main 类的 stopAllThreads() 方法中完成。
【问题讨论】:
-
有关此问题的更多信息,请参阅stackoverflow.com/questions/1611822/…。
-
您需要跟踪 ParserThread 对象而不是线程,基本上 - 或两者兼而有之。只要有一个 ParserThreads 数组。
标签: java multithreading