Concurrency 维护自己的线程池的库有什么影响?

Concurrency 维护自己的线程池的库有什么影响?,concurrency,threadpool,guava,hystrix,Concurrency,Threadpool,Guava,Hystrix,在我们的项目中,我正在使用Google Guava和Netflix Hystrix库。每个库都有自己的线程池,您可以对其进行配置 这让我想到了它的影响。我的意思是,每个库都在维护自己的线程池,当然,每个硬件都有自己的最佳设置 假设我将番石榴的线程池设置为50,将Hystrix的线程池设置为40。会发生什么?他们将争夺资源?我不熟悉Hystrix,但您对番石榴的例子是: ListeningExecutorService service = MoreExecutors.listeningDe

在我们的项目中,我正在使用Google Guava和Netflix Hystrix库。每个库都有自己的线程池,您可以对其进行配置

这让我想到了它的影响。我的意思是,每个库都在维护自己的线程池,当然,每个硬件都有自己的最佳设置


假设我将番石榴的线程池设置为50,将Hystrix的线程池设置为40。会发生什么?他们将争夺资源?

我不熟悉Hystrix,但您对番石榴的例子是:

ListeningExecutorService service =
    MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10));
在这种情况下,Guava根本不提供线程池。。。您正在使用标准JDK方法在代码中配置线程池以创建线程池,然后使用Guava方法包装该
ExecutorService


为了(希望)回答您的问题,如果您有两个独立的线程池,那么它们实际上是独立的。。。他们不会共享任何线程。如果一个有50个线程,另一个有40个线程,那么总共有90个线程。同样,我不知道你用Hystrix做的任何事情是如何工作的,但是如果它与你用Guava做的事情类似(使用
Executors.newFixedThreadPool(n)
创建一个线程池并将其传递给其他程序),那么只需创建一个线程池并让两个库都使用它,在这种情况下,他们将共享线程。

您指的是Guava中的哪个线程池?@ColinD类似于:ListengExecutorService=MoreExecutors.ListengDecorator(Executors.newFixedThreadPool(10))