???
This commit is contained in:
37
src/com/flaremicro/flaretv/visualforecast/Executor.java
Normal file
37
src/com/flaremicro/flaretv/visualforecast/Executor.java
Normal file
@@ -0,0 +1,37 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user