public void run() { try { do { setStateSometimes(finalI, 3); final Color defaultColor = comp.getBackground(); Color newColor = new Color(rand.nextInt()); changeColor(comp, newColor); Thread.sleep(500 + rand.nextInt(3000)); setStateSometimes(finalI, 4); changeColor(comp, defaultColor); if (!phaser.isTerminated()) { Toolkit.getDefaultToolkit().beep(); } if (!phaser.isTerminated()) { Thread.sleep(2000); phaser.arriveAndAwaitAdvance(); } setStateSometimes(finalI, 1); } while (!phaser.isTerminated()); setState(0); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } };
@Override public void reset() { super.reset(); setState(0); message1("", ConcurrentExampleConstants.MESSAGE_COLOR); message2("", ConcurrentExampleConstants.MESSAGE_COLOR); if (phaser != null && !phaser.isTerminated()) { phaser.forceTermination(); } resetPhaser(); }