我有一个扩展线程的类,如下所示,我希望它有一个volitile布尔字段,它检查以决定是否继续运行。 shouldRun()方法从我的GUI的EDT中调用。如何使用volatile boolean来检查线程是否应该运行? (Java)
如何获得此线程来检查布尔值以知道它是否应该从我的GUI的Event Dispatcher线程运行或等待()?
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;
}
}
一般情况下,我只是希望能够得到这个线程等待(),并从我的GUI与按钮的事件调度线程重新启动。如果有更好的方法可以做到这一点,我也很乐意听到它。提前致谢!
你打算从EDT重新启动它?它是用户操作还是什么?什么是EDT?为什么你的线程正在等待执行?处理线程同步的常用方法是使用同步对象。你可以检查开始这个http://tutorials.jenkov.com/java-concurrency/synchronized.html –