JAVA线程池原理和几种线程池类型的介绍

电脑杂谈  发布时间:2020-05-10 01:12:42  来源:网络整理

线程池 java_java线程池执行完毕_java线程池执行原理

何时使用线程池?

1. 单个任务的处理时间相对较短

2. 增加要处理的任务数量

使用线程池的好处:

1. 减少创建和销毁线程所花费的时间以及系统资源的开销

线程池 java_java线程池执行原理_java线程池执行完毕

2. 如果不使用线程池,则可能导致系统创建大量线程,这将消耗系统内存和“过度切换”.

线程池如何工作:

本文中有一个示例,简要描述了线程池的内部实现. 建议根据其中的示例了解JAVA线程池的原理. 同时,它还详细介绍了使用线程池的优缺点,可以研究的,我认为这是一篇很好的文章.

JDK自己的线程池的一般类简介:

1. newFixedThreadPool创建一个具有指定数量的工作线程的线程池. 每次提交任务时,都会创建一个工作线程. 如果辅助线程的数量达到线程池的初始最大数量,则提交的任务将存储在池队列中.

java线程池执行原理_java线程池执行完毕_线程池 java

2. newCachedThreadPool创建一个可缓存的线程池. 这种类型的线程池的特征是:

1). 创建的辅助线程的数量几乎是无限的(实际上是有限制的,数量是Interger. MAX_VALUE),因此您可以灵活地将线程添加到线程池中.

2). 如果长时间未将任务提交到线程池,也就是说,如果工作线程空闲了指定的时间(默认为1分钟),则工作线程将自动终止. 终止后,如果您提交新任务,则线程池将重新创建工作线程.

3. newSingleThreadExecutor创建一个单线程的Executorjava线程池执行原理,即,仅创建一个工作线程来执行任务. 如果该线程异常结束,则另一个线程将替换它以确保顺序执行(我认为这是它的功能). 单个工作线程的最大特点是,它可以确保每个任务都按顺序执行,并且在任何给定时间都没有多个线程处于活动状态.

4. newScheduleThreadPool创建一个固定长度的线程池,并支持计划的和定期的任务执行,类似于Timer. (此线程池原理尚未完全理解)

线程池 java_java线程池执行完毕_java线程池执行原理

摘要: 1. FixedThreadPool是典型的优秀线程池,它具有线程池的优点,可以提高程序效率并节省创建线程的开销. 但是,当线程池处于空闲状态时,即线程池中没有可操作的任务时,它将不会释放辅助线程,并且会占用某些系统资源.

两个. CachedThreadPool的特征是,当线程池处于空闲状态时,即当线程池中没有要运行的任务时,它将释放工作线程,从而释放工作线程占用的资源. 但是,当出现新任务时,将创建一个新的工作线程,并且需要一定的系统开销. 并且,在使用CachedThreadPool时,必须注意控制任务数,否则,因为大量线程同时运行java线程池执行原理,很可能导致系统瘫痪.

三个. 只是问问您,您是否使用过SingleThreadExecutor?通常在哪里使用?

我刚刚研究了线程池. 以上是我个人的学习过程和看法,请不要笑!在下一章中,我们将分析JDK自己的线程池的源代码(ThreadPoolExecutor.java). 如果您有兴趣,可以看看. 顺便说一句,帮助加油吧!

JAVA线程池(ThreadPoolExecutor)源代码分析|逐步学习spring(八)-spring AOP ...

线程池 java_java线程池执行原理_java线程池执行完毕

2楼dahu11282011-11-07

SingleThreadExecutor

但是,工作线程可以传递并行任务,并且使用的是Swing EDT事件分发机制.

sw19822010-04-22一楼

(但是请注意,如果此单曲

*线程由于执行之前的失败而终止

*关闭,如果需要执行,将替换一个新的

*后续任务. )

确保线程不会挂起: )


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-204650-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...