备注:CacheKit,是一个从零开始手动打造的分布式缓存系统。
在Java里面,用到线程池的时候,一般都是采用ThreadPoolExecutor。这个仅仅是一个原料,要想做成一顿丰盛的午餐,还是略显单薄。ThreadPoolExecutor是管理线程的,但是如何管理线程池,监控线程池呢?还得需要ThreadPoolManager。ThreadPoolManager是ThreadPoolExecutor的封装,是它的更高一层。
上面提到了ThreadPoolExecutor,其配置参数部分,应该抽出来形成一个配置类,就叫:ThreadPoolConfiguration,其包括:
maximumPoolSize,最大线程数目
minimumPoolSize,最小线程数目。最大,最小值的设定,体现了线程池的可伸缩性设计。
keepAliveTime,线程空闲之后的存活时间,这个参数只针对那些超过minimumPoolSize之后创建的线程,
BlockedPolicy,发送堵塞之后的处理策略,一般分为几种情况:
ABORT,BLOCK,BLOCK,WAIT,DISCARDOLDEST,这些参数在日常开发中经常见到,在此不做解释了。
线程池里的线程一般都是通过工厂模式产生的,在Java里面有一个线程工厂接口ThreadFactory,可以实现这个接口,自定义一个线程工厂CacheKitThreadFactory,这样生成出的线程都有一个统一的名字,优先级,是否在后台运行。
总之,CacheKit的线程池管理模块分为三个大类:ThreadPoolManager类,ThreadPoolConfiguration类,CacheKitThreadFactory类。