线程池的优点

简介: 线程池的优点

🔎优点1(降低资源消耗)

有了线程池后,创建线程不再是向系统申请,而是从线程池中拿

当线程不再使用后,再还给线程池

线程的创建,虽然相较于进程是轻量的,但是如果进行频繁的创建,那么开销也是不可忽略的


🔎优点2(提高响应速度)

直接从线程池中获取线程要比从系统创建线程更高效

那么为什么从线程池获取就会比在系统中创建要高效呢?

因为从线程池中获取属于用户态操作

而从系统中创建涉及到用户态和内核态之间的切换,但真正的创建是在内核态完成的

举个栗子🥝

一个操作系统 = 内核 + 应用程序

内核相较于应用程序较少

我们可以将内核想象成银行的工作人员,将应用程序想象成办理业务的人

一个内核(银行工作人员)对应多个应用程序(办理业务的人)

如果我们去办理业务,需要用到身份证复印件,此时我们恰好没带复印件,只带了身份证

那么有2种选择:

选择(1):将身份证交给工作人员,让工作人员去打印复印件

选择(2):自己拿着身份证去大厅打印身份证

如果是用户自己去拿着身份证复印,那他复印完很快就回来了(用户态)

纯用户态操作,时间是可控的

但是交给工作人员去复印,就需要进行等待(内核态)

因为工作人员有可能在复印身份证时,顺便上了个厕所,顺便接了杯水,顺便…

内核态操作,时间不可控

通过上面这个栗子,相信大家就明白了为什么直接从线程池中获取线程要比从系统创建线程更高效


🔎优点3(可管理性)

通过统一的分配,监控,避免大量的线程间因互相抢占资源导致的阻塞现象

🔎结尾

创作不易,如果对您有帮助,希望您能点个免费的赞👍

大家有什么不太理解的,可以私信或者评论区留言,一起加油

相关文章
|
3月前
|
负载均衡 安全 Java
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用(一)
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用
567 2
|
3月前
|
负载均衡 Java 数据处理
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用(三)
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用
238 2
|
3月前
|
存储 监控 Java
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用(二)
【C++ 并发 线程池】轻松掌握C++线程池:从底层原理到高级应用
179 1
|
3月前
|
存储 设计模式 算法
【C++ 并发 线程池设计】深入理解C++线程池:设计、实现与应用
【C++ 并发 线程池设计】深入理解C++线程池:设计、实现与应用
154 0
|
3月前
|
缓存 监控 Java
|
3月前
|
缓存 Java
深入线程池原理
深入线程池原理
33 0
|
3月前
|
Java 应用服务中间件 调度
线程池与性能
线程池与性能
32 0
|
3月前
|
Java 数据库连接 数据库
数据库连接池与线程池的优点,为什么要使用线程池
数据库连接池与线程池的优点,为什么要使用线程池
58 0
|
监控 Java 数据库连接
【多线程】基础 | 你到底懂不懂线程池?
线程池(Thread Pool)是一种基于池化思想管理线程的工具,预先创建一些对象放入池中,使用的时候直接取出使用,用完归还接下去复用,通过一定的策略调整 池中参数,实现池的动态伸缩。
|
缓存 Java 应用服务中间件
【C】高并发线程池设计
【C】高并发线程池设计