private void stopThread() {
thread1.canRun(false);
}
private void createThread() {
thread1.stopThread();
thread1.canRun(true);
thread1 = new Thread(thread1);
t.start();
}
我只有一个按钮。 当我点击按钮时,我执行计数为n数的线程 当我再次单击该按钮时,最后一个线程应该停止并创建一个新线程。
问题是当我创建第二个线程时,似乎最后一个线程没有停止并且都继续运行
@Override
public void run() {
try {
for (int i = 0; i <= TimeOut && canRun; i++) {
System.out.println(i);
Thread.sleep(1000);
}
}
private volatile boolean canRun;
答案 0 :(得分:0)
问题可能出在以下几行:
thread1.stopThread(); // <-- sets canRun to false
thread1.canRun(true); // <-- sets canRun to back to true
您还可以使用true初始化canRun
,这意味着该线程可以在其初始状态中运行:
private volatile boolean canRun = true;