如何解决使用 ExecutorSERVice、Runnable 进行迭代
在服务实现中,以下是实现
if(usernames != null && usernames.size() > 0) {
operationId = bulkupdateAuditLogRepository.getLatestOperationId()
for(String username: usernames) {
executorService.submit(new BackgroundTask() {
@Override
public void doTask() {
deactivateUserInternal(username,operationId)
}
})
}
}
还有 private ExecutorService executorService = Executors.newFixedThreadPool(5);
无论如何,当只迭代任何数组 ['AAAAA','BBBB','CCCC'] 的最后一个用户名时,只有值 CCCC 被可运行的 BackgroundTask 实例占用。 只是想知道迭代中缺少什么。
解决方法
提到的 backgroundTask 不是 java.util.concurrent.Callable,在这样的实现之后能够以异步方式执行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。