簡體   English   中英

添加延遲以使用ScheduledExecutorService對象啟動執行線程

[英]Add delay to start execution thread with ScheduledExecutorService object

我正在實現一個線程池以發送多個get snmp。 我正在使用Callable對象:

final ScheduledExecutorService executor = Executors.newScheduledThreadPool(size);
final Map<String, Future< >> map = new HashMap<String, Future< >>();
for (final String key : groupMap.keySet()) {
    final ObjectCallable objectCallable = new ObjectCallable(par1, par2, par3);
    try {
         Thread.sleep(50);
    } catch (final InterruptedException e) {
           LOGGER.error("Error delay in the submit Callable" + e.getMessage());
            }
    final Future< > result = executor.submit(objectCallable);
}

我需要在線程之間添加執行延遲。 我在提交之前添加了睡眠,對嗎? 有人知道其他方法嗎?

ScheduledExecutorServiceschedule方法(及其重載)接受一個delay參數,該參數似乎完全定義了您要查找的內容,例如:

delay-從現在開始延遲執行的時間

在本示例中,您要做的是在將Callable提交執行之前人為地睡在當前正在執行的線程上(這是通過調用ExecutorService#submit進行的 ,因此未利用ScheduledExecutorService的特定方法)。

暫無
暫無

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

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