grpc-java 在它的 executor 中使用了一个 executor ServerBuilder
,如果没有被builder.executor()
方法定义,默认使用一个静态缓存的线程池。这个执行器的具体用途是什么?它只是执行处理程序方法还是也做“其他事情”?
另外, grpc 是如何定义 netty worker 的EventLoopGroup
?具体来说,我想知道工作线程是如何分配给这个工作组的。线程数有默认值,还是机器核心数的函数?另外,关于上述问题,这些网络工作者如何与执行者合作?他们是否只处理 I/O - 对通道的读取和写入?
编辑:Netty,默认创建(2 * 核心数)工作线程。