【发布时间】:2020-04-19 14:22:10
【问题描述】:
我试图阻止 GRPC 每个通道使用多个线程。为此,我使用以下代码设置了一个单线程执行器:
for (int i = 0; i < 3 * numFaults + 1; i++) {
//One thread for each channel
ManagedChannel channel = NettyChannelBuilder
.forAddress(host, port + i + 1)
.usePlaintext()
.executor(Executors.newSingleThreadExecutor())
.build();
然后我为每个通道创建一个异步存根。
但是,这似乎不起作用,因为我的程序中仍然产生太多线程,最终内存不足。
我应该将执行程序传递给存根吗?或者有什么根本性的错误。
提前致谢
【问题讨论】:
-
“每个通道使用多个线程”但每个通道只有一个线程执行器。
-
是的,但是当我看到我机器上的线程使用情况时,我发现它仍在产生许多线程
标签: java multithreading grpc grpc-java