簡體   English   中英

運行兩次后停止ScheduledExecutorService嗎?

[英]Stop ScheduledExecutorService after it runs two times?

我試圖讓某些代碼僅執行兩次,每次執行之間延遲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);

}

我認為ExecutorService過於矯ExecutorService正。 如果僅使用普通線程,則該線程可以運行,休眠並再次運行。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM