我试图让一些代码只执行2次,每次执行之间的延迟为500微秒。
到目前为止,我已使用ScheduledExecutorService
和int counter
来跟踪ExecutorService
运行我的代码的次数,但我想知道这是否是一个好方法,如果有的话更好的方式:
private void dingdong() {
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
int count;
@Override
public void run() {
count++;
//TODO operation
if (count == 2) {
exec.shutdownNow();
}
}
}, 0, 500, TimeUnit.MICROSECONDS);
}
答案 0 :(得分:1)
我认为ExecutorService
太过分了。如果您只使用普通的Thread,它可以运行您的操作,休眠并再次运行它。
new Thread(() -> {
doTheThing();
TimeUnit.MICROSECONDS.sleep(500);
doTheThing();
}).start();