
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在前几期的文章中给大家简单介绍了Java编程开发程序员需要掌握的一些基础知识以及多线程技术应用等内容,而本文我们就再来学习一下,Java编程线程池用法分析。
1、线程使用存在的问题
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。
如果大量线程在执行,会涉及到线程间上下文的切换,会极大的消耗CPU运算资源
2、线程池的介绍
其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。
3、线程池使用的大致流程
创建线程池指定线程开启的数量
提交任务给线程池,线程池中的线程就会获取任务,进行处理任务。
线程处理完任务,不会销毁,而是返回到线程池中,等待下一个任务执行。
如果线程池中的所有线程都被占用,提交的任务,只能等待线程池中的线程处理完当前任
4、线程池的好处
降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
提高响应速度。当任务到达时,任务可以不需要等待线程创建,就能立即执行。
提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,后死机)。
5、Java提供好的线程池
java.util.concurrent.ExecutorService是线程池接口类型。使用时我们不需自己实现,JDK已经帮我们实现好了
获取线程池我们使用工具类java.util.concurrent.Executors的静态方法
publicstaticExecutorServicenewFixedThreadPool(intnum):指定线程池大线程池数量获取线程池
线程池ExecutorService的相关方法
关闭线程池方法(一般不使用关闭方法,除非后期不用或者很长时间都不用,就可以关闭)
voidshutdown()启动一次顺序关闭,执行以前提交的任务,但不接受新任务
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。