package fr.univamu.l2mi.ticker; import java.util.ArrayList; import java.util.List; public class Ticker { private Thread ticking; private final List<Tickable> listeners = new ArrayList<>(); public void add(Tickable listener) { listeners.add(listener); } public void startTicking() { ticking = new Thread(() -> { try { while (true) { Thread.sleep(1000); listeners.forEach(Tickable::notifyTick); } } catch (InterruptedException exc) { // Done } }); ticking.setDaemon(false); ticking.start(); } public void stopTicking() { ticking.interrupt(); } }