Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

Ticker.java

Blame
  • Forked from NAVES Guyslain / clock-template
    Up to date with the upstream repository.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Ticker.java 755 B
    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();
        }
    }