我使用的是springboot,我有一个用例,我想将列表中的每个元素提交给executor服务(threadpool size=4)。但是在每一个需要处理的元素之间,我想要1秒的延迟。
sleep(1000)不起作用,因为一旦一个线程进入睡眠状态,executor就会启动另一个线程。
list().forEach(key -> {
executorService.submit(new Runnable() {
@Override
public void run() {
process(key);
}
});
});
edit:这是我的process()方法,我在最后尝试使用sleep,但没有成功。
private void process(long key) {
try {
//processing key
} catch (SystemException e) {
// Exception handling
}
Thread.sleep(1000);
}
1条答案
按热度按时间vwhgwdsa1#
既然您希望它们在另一个线程上按顺序执行,为什么不直接使用
ScheduledExecutorService
然后在名单上投票?伪