Executor 并发调度模型
Executor是一种并发调度模式:它借助于队列和维护着一个用于调度任务的线程池来处理任务对象的调度。每一个Runnable对象都是一个任务单元,它是可以被Executor调度器调度的最小单元。
当开发者创建一个Runnable对象时,开发者需要把它提交到Executor调度器中,调度器会把它送入到队列中,等待调度。线程池里面处于空闲的线程就会从队列中获取可调用的任务对象,然后在此线程
中执行任务单元。
优点
可以控制并发的数量
不会为每一个线程开辟一个新的线程,避免频繁创建线程的系统开销
伪码描述
创建一个Executor
设置Executor需要存放任务单元的队列
设置Executor用于执行任务单元的线程池,并初始化一批线程等待任务调度
...
创建一个Runnable对象,即任务单元
送入任务单元到Executor调度器中
Executor收到任务然后把其送入到队列中
...
线程池扫描到队列中有任务,取出任务,分配一个空闲的线程调用Runnable的run()方法
任务单元计算完毕,线程重新在线程池中处于空闲对象