package framework.schedule; public class TaskController { private boolean bActive = false; synchronized public boolean activate() { if (isActive()) return false; setActive(true); return true; } synchronized public void deactivate() { synchronized(this) { notify(); } setActive(false); } synchronized public void waitForActivation() { if (!isActive()) return; try { synchronized(this) { wait(); } } catch (InterruptedException e) { e.printStackTrace(); } setActive(false); // 不要かもしれない } private boolean isActive() { return bActive; } private void setActive(boolean flag) { bActive = flag; } }