Executor的两极调度模型
第一级:java多线程程序把应用分解为若干个任务,然后使用用户级的调度器(Executor框架)将这些任务映射为固定数量的线程;
第二级:操作系统内核将这些线程映射到处理器上。
创建实现Runnable或Callable接口的任务,提交到ThreadPoolExecutor来处理。不需要结果的使用execute的方式提交,需要的使用submit的方式,结果为Future的实现类。
创建ThreadPoolExecutor的方式:使用Executors的静态方法来创建。
ThreadPoolExecutor的处理过程:
1.创建核心线程处理任务;如果核心线程数量已经最大,执行2
2.将任务放入队列中;若队列已满,执行3
3.创建新线程执行任务;若所有的线程数量已达到最大线程数,则执行4
4.按照策略处理无法执行的任务。