参考来自:慕课网
1.线程池的介绍
创建线程开销大,线程池的作用就是预先建立好线程,等待任务派发。
主要由两部分组成:线程+派发任务的queue。所有的线程都会从队列的头部获取任务。如果队列是空的,线程就会一直等待,直到有任务进来。
使用方法:创建一个线程池,然后往队列中放任务。
2.重要参数
3.ThreadPoolExecutor
常用使用方法:
1 ExecutorService executor = Executors.newFixedThreadPool(30);
其实这只是封装了一下,最终使用的还是ThreadPoolExecutor。
任务的派发:可以看见右边的执行,是先开始了3个任务,因为在定义中设置了大小为3。
这里的submit()方法里可以接受Runnable类型的参数,也可以接受Callable类型的参数。区别是:Callable有返回值。
如果想要知道执行任务时的一些信息比如执行成功了吗或者想要取消任务,可以使用Future。