Executor 并发调度模型

Executor 并发调度模型

Executor是一种并发调度模式:它借助于队列和维护着一个用于调度任务的线程池来处理任务对象的调度。每个Runnable对象都是一个任务单元,它是能够被Executor调度器调度的最小单元。
当开发者建立一个Runnable对象时,开发者须要把它提交到Executor调度器中,调度器会把它送入到队列中,等待调度。线程池里面处于空闲的线程就会从队列中获取可调用的任务对象,而后在此线程
中执行任务单元。并发

优势

  1. 能够控制并发的数量线程

  2. 不会为每个线程开辟一个新的线程,避免频繁建立线程的系统开销code

伪码描述

建立一个Executor
设置Executor须要存听任务单元的队列
设置Executor用于执行任务单元的线程池,并初始化一批线程等待任务调度

...

建立一个Runnable对象,即任务单元
送入任务单元到Executor调度器中
Executor收到任务而后把其送入到队列中

...

线程池扫描到队列中有任务,取出任务,分配一个空闲的线程调用Runnable的run()方法
任务单元计算完毕,线程从新在线程池中处于空闲对象