Files
VisualForecast-1000/src/com/flaremicro/flaretv/visualforecast/Executor.java
Flare Microsystems 3e225d4078 ???
2024-03-06 14:24:23 -08:00

38 lines
916 B
Java

package com.flaremicro.flaretv.visualforecast;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import com.flaremicro.flaretv.visualforecast.interfaces.Tickable;
public class Executor {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
private final Tickable tickable;
private final long sleepNanos;
//private long nextTick = 0;
Executor(Tickable tickable, long sleepNanos) {
this.tickable = tickable;
this.sleepNanos = sleepNanos;
}
Executor(Tickable tickable, int ticksPerSecond) {
this(tickable, (long) ((1 / (double) ticksPerSecond) * 1000000000L));
}
public void end() {
scheduler.shutdown();
}
public void begin() {
scheduler.scheduleAtFixedRate(new Runnable() {
public void run() {
tickable.tick();
}
}, 0, sleepNanos, TimeUnit.NANOSECONDS);
}
}