一个业务接口,前端传入10个主键id,每个id都需要调用一个方法去更新关于本id的数据(逻辑复杂),后面的业务还要用到库里面更新后的数据。更新一个大概2s。怎样快一点更新完。for循环一个id开了一个子线程,但是只能一个个的更新,不能一起执行。
那说明你开子线程的方式不对
不要在for里写join,那是主线程等待子线程执行完毕,那你的子线程就白开了
应该两个for
前一个直接开10个线程
后一个把10个线程全部join进来,这样当最后一个子线程执行完毕后主线程就会继续执行了
可以给一下代码。
可以考虑用CountDownLatch实现,子线程并发执行完,主线程再执行,可以满足后续业务依赖更新结果
这篇文章:for循环使用多线程优化 也许有你想要的答案,你可以看看