首页 > 试题广场 >

Java中有几种线程池?

[问答题]
请回答一下Java中有几种线程池?并且详细描述一下线程池的实现过程
newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程newFixedThreadPool:创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。newSingleThreadExecutor:创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。如果这个线程异常结束,会有另一个取代它,保证顺序执行。newScheduleThreadPool 创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行。
发表于 2019-05-05 15:18:56 回复(0)
更多回答
  1. newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程
  2. newFixedThreadPool:创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。
  3. newSingleThreadExecutor:创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。如果这个线程异常结束,会有另一个取代它,保证顺序执行。
  4. newScheduleThreadPool
    创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行。
发表于 2019-02-22 09:37:28 回复(1)
Java线程池的种类:
   1.cachedThreadPool    一个任务一个线程,适和I/O操作多的任务.
   2.fixedThreadPool       核心池大小固定,适合处理快的任务.
   3.singleThreadPool     只有一个thread处理所有的任务(SynchronousQueue).
   4.scheduledThreadPool 可以定时,周期的执行任务(DelayQueue).

发表于 2020-02-14 21:10:12 回复(0)
1.newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无回收,则新建线程。
2.newFixedThreadPool:创建一个指定工作线程数量的线程池,每当提交一个任务就可创建一个工作线程,如果工作线程数量达到线程池初始化的 最大数,则将提交的任务存入到池队列中。
3.newSingleThreadExecutor:创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序执行,如果这个线程异常结束,会有另一个取代他,保证顺序执行。
4.newScheduleThread:创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行。
发表于 2020-07-09 15:01:17 回复(0)
1.newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无回收,则新建线程。
2.newFixedThreadPool:创建一个指定工作线程数量的线程池,每当提交一个任务就可创建一个工作线程,如果工作线程数量达到线程池初始化的 最大数,则将提交的任务存入到池队列中。
3.newSingleThreadExecutor:创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序执行,如果这个线程异常结束,会有另一个取代他,保证顺序执行。
4.newScheduleThread:创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行。
发表于 2020-02-28 11:56:28 回复(0)
1.newCachedThreadPool()创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。
2.newFixedThreadPool()创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。
3.newScheduledThreadPool()创建一个线程池,它可安排在给定延迟后运行命令或者定期地执行。
4.newSingleThreadExecutor()创建一个使用单个 worker 线程的 Executor,以***队列方式来运行该线程。
发表于 2019-05-04 22:20:14 回复(0)
newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程newFixedThreadPool:创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。newSingleThreadExecutor:创建一个单线程化的Executor,即只创建唯一的工作者线程来执行任务,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。如果这个线程异常结束,会有另一个取代它,保证顺序执行。newScheduleThreadPool 创建一个定长的线程池,而且支持定时的以及周期性的任务执行,支持定时及周期性任务执行。
发表于 2019-04-30 19:16:02 回复(0)