当前位置:首页 > 学习资源 > 讲师博文 > Java线程池

Java线程池 时间:2024-05-08      来源:华清远见

(一)概述                                                                                        

1、Java线程池(Thread Pool)是一种基于池化思想管理线程的工具,用于在多线程服务器中有效地管 理和控制线程的生命周期,降低资源消耗,提高系统性能。线程池的概念与数据库连接池相似,通过维 护一组可复用的线程,避免了频繁地创建和销毁线程带来的开销。

2、原理:它维护多个线程,等待监督管理者分配可并发执行的任务。当有新的任务提交时,线程池会尝 试利用已有的线程来执行任务,如果线程池中的线程数量不足,线程池会根据一定的策略创建新的线程   来处理任务。任务执行完毕后,线程并不会立即销毁,而是返回到线程池中等待下一个任务。这种方式   有效地避免了线程数量膨胀导致的过分调度问题,同时也降低了线程的创建和销毁开销。

(二)优缺点                                                                                     

1、降低资源消耗:通过重复利用已创建的线程,降低了线程创建和销毁的开销。

2、提高响应速度:任务可以快速地分配到已有的线程中执行,提高了系统的响应性。

3、提高系统吞吐量:线程池可以并发执行多个任务,提高了系统的整体性能。

4、提供灵活的任务调度策略:线程池可以根据实际需求调整线程的数量和任务的调度方式。

(三)存在意义                                                                                 

1、没有线程池:

(1)   需要手动创建线程,还需要手动启动线程

(2)   在线程运行的过程中,如果出现了业务逻辑破坏力大的情况,线程有可能被破坏,业务逻辑执行到 一半就无法执行了,并且,业务逻辑也不能用新的线程继续执行

(3)   当业务逻辑非常简单的时候,也要创建线程对象,只是简单地使用线程之后,线程就会变成系统垃

圾无法再用,浪费系统资源

2、有线程池:

(1)   不需要手动创建线程,线程会自动完成线程创建

(2)   在业务逻辑破坏力大的时候,线程被破坏,线程池会安排其他线程继续执行没有执行完的业务逻辑

(3)   当业务非常简单,只需要将业务逻辑提交给线程池,线程会自动安排线程执行任务,任务执行完毕 后,线程不会变成系统垃圾,而是被线程池回收,继续在线程池中活跃,等待下一次提交任务

(四)线程池的使用                                                                          

1、步骤:

(1)   获取线程池对象

(2)   创建任务对象

(3)   将任务提交到线程池中

2、获取线程对象:

(1)   工具类:  Executors:用于生成线程池的工具类,根据需求可以指定线程池中线程的数量

(2)   ExecutorServicenewFixedThreadPool(int nThreads) 创建一个线程池,线程数量由参数指定

 

(3)   ExecutorServicenewSingleThreadExecutor() 创建一个只具有一条线程的线程池

3、创建任务对象:创建Runnable接口的实现类对象即可

4、将任务提交到线程池中:

(1)   submit(Runnabletask) 将任务提交到线程池。当提交的任务数量大于池中线程数,现有的线程先 执行任务,当第一个线程将任务执行完毕后,紧接着执行后续排队的任务

(2)   shutdown() 结束线程池。执行已经提交的任务,不接受新任务

(3)   shutdownNow() 结束线程池。试图结束正在执行的任务,不执行已经提交的任务,不接受新任务

 

 

上一篇:不同类型单片机之间如何通信?

下一篇:嵌入式软件重构的要点

戳我查看2020年嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2024 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部