采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
为什么不使用ThreadPoolExecutor去创建线程池,而是使用ExecutorService去创建提交,这2者有什么区别呢?在实际工程项目中,通常是使用哪一个?
首先,创建线程池有两种方式:第一种是直接使用ThreadPoolExecutor类的构造方法,通过new关键字来创建,缺点是参数比较多不好记,优点是创建者可以精准掌握线程池的构成,比如说:最大线程数是多少,阻塞队列最大能容纳多少任务。第二种是使用工具类Executors,他能够创建几种比较常用的线程池,比如:newCachedThreadPool。但他的本质也是在调用new ThreadPoolExecutor再创建,只不过帮你默认了一些参数而已。
再说ExecutorService,上面说的两种创建方式创建出来的线程池实例,都是ExecutorService接口的实现类,这个接口提供了提交线程任务的方法。
最后,实际工程中很少手工创建线程池,一般都是让容器来管理线程池。关于这部分,年后课程有个更新,会讲解如果通过线程池异步导出Excel表格,应该能够提供一些参考。
登录后可查看更多问答,登录/注册
可以改变的编程效率
1.7k 8
959 7
871 7
1.2k 6
951 6