之前介绍了dubbo中SPI扩展点之自适应,那么线程池就是自适应扩展点的应用体现。
dubbo中已实现的线程池扩展点有:

以fixed为ID的FixedThreadPool示例分析:
1、FixedThreadPool的UML图如下:

2、查看ThreadPool接口:

下面以FixedThreadPool为基础实现自定义的线程池扩展:
1、线程池实现, 这里主要是基于对 FixedThreadPool 中的实现做扩展出线程监控的部分:

2、SPI声明,创建文件 META-INF/dubbo/org.apache.dubbo.common.threadpool.ThreadPool


3、在服务提供方项目引入该依赖

4、在服务提供方项目中设置使用该线程池生成器

为什么这样写呢?前面查看ThreadPool接口的时候,通过@Adaptive注解已经明确key值为threadpool。
5、主执行程序多次发起请求,查看该线程池是否在服务端生效:
消费端未执行前:

消费端执行后:

上述主程序中没有任何与WatchingThreadPool类直接或间接的调用,那么这个扩展点是如何被调用的呢?后续主题文章介绍。
原文:https://www.cnblogs.com/ilovebath/p/14869487.html