我有六个进程将数据发送到外部服务器。每个进程运行多个“传输”线程以提高性能和paralellism (延迟、大文件等)。我每个进程有一个执行器,每个进程最多5个线程。
现在,由于外部服务器只支持20个线程,而且我的进程试图运行30个总线程(6个进程x5个线程),一些线程崩溃。我懂了。
有没有办法在Java中创建一个“大线程池”(包含20个线程),将所有进程的总传输线程限制在最多20个?
或者,我正在考虑为所有进程创建一个单个执行器,但是有一个进程可以控制所有线程,而剩下的线程则处于饥饿状态。
发布于 2018-10-11 17:40:29
您可以为您的进程使用单个执行器并实现bulkhead模式。例如,Hystrix和Resilience4j有现成的实现。
https://stackoverflow.com/questions/52765898
复制相似问题