最近看了一些源码(jdk的concurrent包),看了一本书(《大型网站技术架构》),从中发现了一个非常有用的模型:生产者/消费者模型。模型如下图:
线程池:
在concurrent包中,比较典型的就是线程池了,线程池的作用就是复用线程,通过限制线程的创建,来降低创建线程锁产生的开销。在JDK中,提供了便利且好用的创建线程池的类来供调用,你可以自定义调用ThreadPoolExecutor来创建:
public ThreadPoolExecutor(int corePoolSize, //线程池的大小,不调用预创建线程函数的话,刚开始线程池里线程数为0
int maximumPoolSize,//线程池可容大小