为什么程序中突然多了 200 个 Dubbo-thread 线程的说明
在某次查看程序线程堆栈信息时,偶然发现有 200 个 Dubbo-thread 线程,而且大部分都处于 WAITING 状态,如下所示:为什么会有这么多 Dubbo-thread 线程呢?带着疑问就去研究了下源码。Dubbo 的线程池 ThreadPool 有四种具体的实现类型:。外面的 key 表示服务提供方还是消费方,里面的 key 表示服务暴露的端口号,也就是说消费方对于相同端口号的服务只会创建一个线程池,共享同一个线程池进行服务请求和消息接收后一系列处理。显然和 Dubbo-thread 名不一样,那就很有可能是通过调用第二个方法创建的线程池。再看方法具体内容,当已经创建的线程池关闭或终止时会重新创建新的线程池。那么,就可以知道 Dubbo-thread 线程池的创建是由于服务消费方和提供方之间连接断开而创建的线程池,代替程序启动初始化时创建的 DubboClientHandler 线程池。
用户评论