微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 ExecutorSERVice、Runnable 进行迭代

如何解决使用 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 举报,一经查实,本站将立刻删除。