[英]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);
}
我需要在線程之間添加執行延遲。 我在提交之前添加了睡眠,對嗎? 有人知道其他方法嗎?
ScheduledExecutorService
的schedule方法(及其重載)接受一個delay
參數,該參數似乎完全定義了您要查找的內容,例如:
delay-從現在開始延遲執行的時間
在本示例中,您要做的是在將Callable
提交執行之前人為地睡在當前正在執行的線程上(這是通過調用ExecutorService#submit進行的 ,因此未利用ScheduledExecutorService
的特定方法)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.