sclass Trigger implements Runnable { transient bool triggered; synchronized void trigger() { triggered = true; } public void run() { trigger(); } // check if triggered and clear flag synchronized bool isTriggered_clear() { if (!triggered) false; ret true with triggered = false; } }