
何时使用线程池?
1. 单个任务的处理时间相对较短
2. 增加要处理的任务数量
使用线程池的好处:
1. 减少创建和销毁线程所花费的时间以及系统资源的开销

2. 如果不使用线程池,则可能导致系统创建大量线程,这将消耗系统内存和“过度切换”.
线程池如何工作:
本文中有一个示例,简要描述了线程池的内部实现. 建议根据其中的示例了解JAVA线程池的原理. 同时,它还详细介绍了使用线程池的优缺点,可以研究的,我认为这是一篇很好的文章.
JDK自己的线程池的一般类简介:
1. newFixedThreadPool创建一个具有指定数量的工作线程的线程池. 每次提交任务时,都会创建一个工作线程. 如果辅助线程的数量达到线程池的初始最大数量,则提交的任务将存储在池队列中.

2. newCachedThreadPool创建一个可缓存的线程池. 这种类型的线程池的特征是:
1). 创建的辅助线程的数量几乎是无限的(实际上是有限制的,数量是Interger. MAX_VALUE),因此您可以灵活地将线程添加到线程池中.
2). 如果长时间未将任务提交到线程池,也就是说,如果工作线程空闲了指定的时间(默认为1分钟),则工作线程将自动终止. 终止后,如果您提交新任务,则线程池将重新创建工作线程.
3. newSingleThreadExecutor创建一个单线程的Executorjava线程池执行原理,即,仅创建一个工作线程来执行任务. 如果该线程异常结束,则另一个线程将替换它以确保顺序执行(我认为这是它的功能). 单个工作线程的最大特点是,它可以确保每个任务都按顺序执行,并且在任何给定时间都没有多个线程处于活动状态.
4. newScheduleThreadPool创建一个固定长度的线程池,并支持计划的和定期的任务执行,类似于Timer. (此线程池原理尚未完全理解)

摘要: 1. FixedThreadPool是典型的优秀线程池,它具有线程池的优点,可以提高程序效率并节省创建线程的开销. 但是,当线程池处于空闲状态时,即线程池中没有可操作的任务时,它将不会释放辅助线程,并且会占用某些系统资源.
两个. CachedThreadPool的特征是,当线程池处于空闲状态时,即当线程池中没有要运行的任务时,它将释放工作线程,从而释放工作线程占用的资源. 但是,当出现新任务时,将创建一个新的工作线程,并且需要一定的系统开销. 并且,在使用CachedThreadPool时,必须注意控制任务数,否则,因为大量线程同时运行java线程池执行原理,很可能导致系统瘫痪.
三个. 只是问问您,您是否使用过SingleThreadExecutor?通常在哪里使用?
我刚刚研究了线程池. 以上是我个人的学习过程和看法,请不要笑!在下一章中,我们将分析JDK自己的线程池的源代码(ThreadPoolExecutor.java). 如果您有兴趣,可以看看. 顺便说一句,帮助加油吧!
JAVA线程池(ThreadPoolExecutor)源代码分析|逐步学习spring(八)-spring AOP ...

2楼dahu11282011-11-07
SingleThreadExecutor
但是,工作线程可以传递并行任务,并且使用的是Swing EDT事件分发机制.
sw19822010-04-22一楼
(但是请注意,如果此单曲
*线程由于执行之前的失败而终止
*关闭,如果需要执行,将替换一个新的
*后续任务. )
确保线程不会挂起: )
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-204650-1.html
实为恶狗假自在
只是美国这种做法有点可恶