我有一个扩展线程的类,如下所示,我希望它有一个volatile布尔字段,它检查该字段以决定是否继续运行。shouldRun()方法从GUI的EDT调用。
我如何让这个线程检查布尔值,以了解它应该从我的GUI的事件调度器线程运行还是等待()?
public class RobotThread extends Thread{
public volatile boolean run;
//if running == true, let thread run
//if running == false, invoke wait() somehow;
public RobotThread(AutoClicker autoClicker) {
super(autoClicker);
run = true;
}
public void setRun(boolean shouldRun) {
this.run = shouldRun;
}
public boolean getRun() {
return run;
}
}
总的来说,我只是希望能够让这个线程wait(),并从我的GUI的Event Dispatcher线程重新启动。如果有更好的方法来做到这一点,我也会很高兴听到它。
1条答案
按热度按时间wvt8vs2t1#
对于等待和重新启动,我相信一个无限循环,
wait
和notify
方法是你要寻找的。例如,看看this guide。