我有一个Class
来实现Runnable
。我在一个线程中使用此类,并尝试暂停它,然后使用某种boolean
标志再次重新启动它。这是我的代码:
class pushFiles implements Runnable{
private volatile boolean running = true;
public void run () {
.
. some code
.
while (running){
.
. more code
.
}
}
public void stop() {
running = false;
}
public void start() {
running = true;
}
};
我正在尝试使用stop
方法暂停线程,并使用start
方法重新启动它。
stop
方法实际上会停止/暂停线程,但start
方法不会让它再次运行。
初始化我使用的线程时:
runnable = new pushFiles();
thread = new Thread(runnable);
thread.start();
我做错了什么?可以取消暂停线程吗? 我该怎么做?
答案 0 :(得分:3)
while (running){
.
. more code
.
}
因此当running
为false时,您的run()
方法退出,您的主题将不复存在。
Here's an example of how to do what you want,使用wait()
/ notify()