把线程池执行任务比作火车站售票:
售票员相当于电脑的核数,当是单核时,一个售票员可以在两个或多个不同窗口进行工作,提高了效率,线程池是对外开放的窗口,待执行任务相当于购票的旅客。
不同类型的线程池:newSingleThreadExecutor对应的是只开放一个窗口,无论后面有多少任务,都进行排队,只有第一个处理完,才进行下一个;newFixedThreadPool对应只开固定个数的窗口,newCachedThreadPool对应的是如果没有可用窗口,则会新建一个窗口,每个窗口可以设置缓存的时间,默认是一分钟,一分钟后如果没有可执行的任务,则进行回收。这种线程池适合执行时间比较短,执行比较频繁的任务