介绍
让有限的工作线程来轮流异步处理无限多的任务。
归类为分工模式。
典型实现就是线程池,体现了经典设计模式:享元模式。
不同任务类型应该使用不同的线程池,这样能够避免饥饿,并能提升效率。
饥饿
固定大小的线程池会有饥饿现象。
任务太多,线程太少而且固定线程数,就造成了一种饥饿。
生活场景
一个餐厅有两个服务员,每个服务员就是一个工作线程,服务员负责点餐、做菜。
如果来了一个客人,那么一个服务员负责点餐,另一个服务员负责做菜就好了。
static final List<String> MENU = Arrays.asList("鱼香肉丝", "宫保鸡丁", "烧茄子", "回锅肉");static Random random = new Random();static String cooking() {return MENU.get(random.nextInt(MENU.size()));}public static void main(String[] args) {ExecutorService executorService = Executors.newFixedThreadPool(2);