请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于线程池的创建问题

为什么不使用ThreadPoolExecutor去创建线程池,而是使用ExecutorService去创建提交,这2者有什么区别呢?在实际工程项目中,通常是使用哪一个?

正在回答

1回答

首先,创建线程池有两种方式:第一种是直接使用ThreadPoolExecutor
类的构造方法,通过new关键字来创建,缺点是参数比较多不好记,优点是创建者可以精准掌握线程池的构成,比如说:最大线程数是多少,阻塞队列最大能容纳多少任务。第二种是使用工具类Executors,他能够创建几种比较常用的线程池,比如:newCachedThreadPool。但他的本质也是在调用new ThreadPoolExecutor再创建,只不过帮你默认了一些参数而已。https://img1.sycdn.imooc.com/szimg/5e3281a6094a533820260486.jpg

再说ExecutorService,上面说的两种创建方式创建出来的线程池实例,都是ExecutorService接口的实现类,这个接口提供了提交线程任务的方法。

最后,实际工程中很少手工创建线程池,一般都是让容器来管理线程池。关于这部分,年后课程有个更新,会讲解如果通过线程池异步导出Excel表格,应该能够提供一些参考。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信