java - ScheduledExecutorService运行两次后停止?

标签 java

我试图让一些代码仅执行 2 次,每次执行之间延迟 500 微秒。

到目前为止,我已经使用 ScheduledExecutorServiceint 计数器 来跟踪 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);

}

最佳答案

我认为 ExecutorService 太过分了。如果您只使用普通线程,它可以运行您的操作, hibernate ,然后再次运行。

new Thread(() -> {
    doTheThing();
    TimeUnit.MICROSECONDS.sleep(500);
    doTheThing();
}).start();

关于java - ScheduledExecutorService运行两次后停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44788451/

相关文章:

java - Swing 在 invokeLater() 上不断生成线程

java - ScheduledExecutorService 和 Shutdown Hook

java - ByteArrayOutputStream 容量限制

java - 如何使用 Appium 和 Java 在 Android 中点击文本旁边的元素?

Java applet 错误...出了什么问题?

java - 无法使用 codesign 签署我的应用程序

Java、Classpath、Classloading => 同一个 jar/项目的多个版本

java - 无法从 R.java 将 int 转换为 String

java - 在 Runnable 线程中访问 Spring bean

java - 仅编译特定测试所需的源