这篇文章给大家介绍Java中线程池的实现原理是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
线程池是什么?
我们可以利用java很容易创建一个新线程,同时操作系统创建一个线程也是一笔不小的开销。所以基于线程的复用,就提出了线程池的概念,我们使用线程池创建出若干个线程,执行完一个任务后,该线程会存在一段时间(用户可以设定空闲线程的存活时间,后面会介绍),等到新任务来的时候就直接复用这个空闲线程,这样就省去了创建、销毁线程损耗。当然空闲线程也会是一种资源的浪费(所有才有空闲线程存活时间的限制),但总比频繁的创建销毁线程好太多。
下面是我的测试代码
@Test public void threadPool(){ CountDownLatch count = new CountDownLatch(50000); long start = System.currentTimeMillis(); Executor pool = Executors.newFixedThreadPool(10);//开启线程池最多会创建10个线程 for(int i=0;i<50000;i++){ pool.execute(new Runnable() { @Override public void run() { System.out.println("hello"); count.countDown(); } }); } while(count.getCount()!=0){//堵塞等待5w个线程运行完毕 } long end = System.currentTimeMillis(); System.out.println("50个线程都执行完了,共用时:"+(end-start)+"ms"); } @Test public void thread(){ CountDownLatch count = new CountDownLatch(50000); long start = System.currentTimeMillis(); for(int i=0;i<50000;i++){ Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.println("hello"); count.countDown(); } }); thread.start(); } while(count.getCount()!=0){//堵塞等待5w个线程运行完毕 } long end = System.currentTimeMillis(); System.out.println("50000个线程都执行完了,共用时:"+(end-start)+"ms"); }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 在 Java 中如何安全地进行 SQL 拼接?(Java中怎么安全的进行SQL拼接)
- Java 的 enum 有哪些需要注意的事项?(java的enum的注意事项)
- 深入解析:如何有效提升PHP数据类型的转换效率
- 如何在 Java 中实现轮询?(java如何实现轮询)
- 如何在 Java 中获取当前时间戳?(java怎么获取当前时间戳)
- 如何简化 Java 的 DAO 层开发流程?(Java的DAO层怎样简化开发流程)
- 深入解析PHP中数据类型的转换技巧
- 在处理速度方面,C++与 Java 究竟谁更快?(c++与java处理速度哪个更快)
- Java Zuul 如何在认证授权中进行应用?(java zuul在认证授权中的应用)
- Uncomtrade数据库免费版本查询指南
猜你喜欢
AI推送时光机Java中实现线程池的原理是什么
后端开发2023-06-16
Java中线程池的实现原理是什么
后端开发2023-05-31
Java线程池实现原理是什么
后端开发2023-06-28
Java线程池实现原理是什么及怎么使用
后端开发2023-07-04
Java线程池实现原理总结
后端开发2024-04-02
android线程池的原理是什么
后端开发2023-09-23
Python中的进程池和线程池的适用场景和实现原理是什么?
后端开发2023-10-22
java线程池实现的方法是什么
后端开发2023-10-11
Java中ThreadLocal线程变量的实现原理是什么
后端开发2023-07-02
java中什么是线程池
后端开发2023-06-14
线程池的工作原理是什么
后端开发2024-04-02
SpringBoot线程池和Java线程池的使用和实现原理解析
后端开发2023-05-15
深入理解Java编程线程池的实现原理
后端开发2023-05-30
java线程池的实现原理源码分析
后端开发2023-06-30
线程池的原理和作用是什么
后端开发2024-04-02
java线程池的实现原理、优点与风险、以及4种线程池实现
后端开发2023-02-18
什么是java线程池
后端开发2017-06-28
java线程池是什么
后端开发2016-06-22
咦!没有更多了?去看看其它编程学习网 内容吧