我们知道java 去执行新的异步任务的时候需要创建新的线程,而线程的创建和销毁都要消耗很多的资源,所以要在线程池中事先创建一定数量的线程,线程池负责管理和协调线程的创建销毁使用,当新的任务到来时,从线程池中拿到一空闲的线程来执行任务,当池中没有可用的线程时,任务进入队列中暂存,等待有空闲线程调用。这样利用线程池可以实现线程的重复利用,减少了线程创建销毁造成的资源浪费。
Executor 框架
Executor 相关类关系:
Executor 接口将任务的提交和执行分开,ThreadPoolExecutor和ScheduledThreadPoolExecutor分别为Executor的实现,执行实现Runnable和Callable 的任务,相比RunnableCallable可以拿到执行的结果FutureTask.
执行过程: