代码之家  ›  专栏  ›  技术社区  ›  The Impaler

限制多个执行器中的线程总数

  •  1
  • The Impaler  · 技术社区  · 6 年前

    我有六个进程向外部服务器发送数据。每个进程运行多个“传输”线程以提高性能和并行性(延迟、大文件等)。每个进程有一个执行器,每个执行器最多有5个线程。

    现在,由于外部服务器只支持20个线程,而我的进程尝试运行30个线程(每个线程6个进程x 5个线程),一些线程崩溃。我明白了。

    有没有办法在Java中创建一个“大线程池”(用20个线程)来限制所有进程的总传输线程最多达到20?

    或者,我正在考虑创建一个 单一的 所有进程的执行器,但是一个进程可以霸占所有线程,让其他进程处于饥饿状态。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Alexander Pankin    6 年前

    您可以使用单个执行器和实现 bulkhead 流程模式。 例如,Hystrix和Resilience4j已经准备好了实现。