谈到线程池,首先要从池化思想说起,Java中常见的数据库连接池、线程池都使用到了池化的思想。池化思想是用来解决什么问题的呢?答案是用来解决,频繁的单一操作导致CPU上下文切换频繁,进而导致效率变低的问题。
学过操作系统大家都知道,CPU是通过时间片轮转来进行线程之间的切换。以线程池为例,线程的创建需要从新建状态->就绪状态->运行状态才可以执行具体的任务,频繁的创建线程对CPU的消耗会非常大。因此为解决频繁创建线程的问题,线程池就出现了。使用线程池,我们可以根据需要提前创建好线程,在需要的时候从线程池中取,使用完再归还线程池,这样减少了任务调度时创建线程的过程,减少了线程从运行状态->阻塞状态再想回到运行状态的问题。
池化思想的核心思想:复用机制,将资源统一在一起管理的一种思想。
池化思想就是我们提前创建好操作非常耗时的一些东西或者成本比较大的东西(比如:数据库连接、线程、复杂的对象),使用时直接从池里拿,使用完再归还给池中,这样会给我们带来一些好处(比如:性能提升、空间利用率变高等)。
池化思想的作用:
1 降低资源消耗;
2 提高响应速度;
3 提高资源的可管理性;
4 提高资源的扩展性。
为什么要使用线程池?
最新推荐文章于 2024-09-14 19:44:09 发布