• 回答数

    5

  • 浏览数

    125

花花要减肥
首页 > 论文问答 > 核心线程数为0

5个回答 默认排序
  • 默认排序
  • 按时间排序

Mary瑶瑶

已采纳
在Java编码的过程中,我们经常会创建一个线程来提高程序的执行效率,虽然这样实现起来很方便,但是会有一个问题:如果并发的线程数多,并且每个线程都是执行一个时间很短的任务就结束了,这样会造成频繁的创建和销毁线程从而导致降低系统的效率。那么问题来了,有没有办法可用复用创建好的线程呢,也就是线程执行完一个任务后,不被销毁,继续执行其他的任务?在Java可以通过线程池来实现这样的效果。下面从三个方面和大家一起来探讨一下Java线程池相关的内容。Java中的ThreadPoolExecutor类。Java中4种线程池的使用。Java线程池常用参数如何设置。一、Java中的ThreadPoolExecutor类AThreadPoolExecutor的重要参数PoolSize:核心线程数核心线程会一直存活,及时没有任务需要执行。当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理。设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭。queueCapacity:任务队列容量(阻塞队列)当核心线程数达到最大时,新任务会放在队列中排队等待执行。axPoolSize:最大线程数当线程数>=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务。当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常。keepAliveTime:线程空闲时间当线程空闲时间达到keepAliveTime时,线程会退出,直到线程数量=corePoolSize。如果allowCoreThreadTimeout=true,则会直到线程数量=0。allowCoreThreadTimeout:允许核心线程超时jectedExecutionHandler:任务拒绝处理器。BThreadPoolExecutor执行过程当线程数小于核心线程数时,创建线程。当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。当线程数大于等于核心线程数,且任务队列已满。(1)若线程数小于最大线程数,创建线程。(2)若线程数等于最大线程数,抛出异常,拒绝任务。二、Java中4种线程池Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
177 评论

张小电1301

311 评论

许清池79

四种线程池:FixedThreadPool:固定数量的线程池,核心线程数和最大线程数相同,使用链表阻塞队列CachedThreadPool:缓存线程池,核心线程数为0,最大线程数为IMAX_VALUE,非核心线程等待时间为60s,使用SynchronousQueue队列SingleThreadPool:单例,核心和最大都是1,使用链表阻塞队列LinkedBlockingQueue。ScheduledThreadPool: 定时延时执行,使用DelayedWorkQueue

191 评论

卷卷小白菜

可以肯定的告诉你,没有这样的CPUCPU必须有线程。

287 评论

桃源捣主

是不是有核心数和线程数分别代表的是?CPU的那个功能和CPU的,传输数据的速度

149 评论

相关问答

  • 核心数与线程数

    一个核心就是一个物理线程,英特尔有个超线程技术可以把一个物理线程模拟出两个线程来用,充分发挥CPU性能。

    Angelcat930 6人参与回答 2023-12-11
  • 电脑cpu核心数和线程数

    INTEL的超线程技术,一个核心二线程同时工作,就好像两个核心在同时工作一样。性能会提高。

    精灵酱酱儿 6人参与回答 2023-12-05
  • 核心数,线程数

    一个核心最少对应一个线程,通过超线程技术,一个核心可以对应两个线程。超线程技术是很好的提升核心利用率,将闲置处理资源充分调动起来,在操作系统中一颗物理CPU能当

    楞大个肚兜 6人参与回答 2023-12-08
  • 核心线程数和最大线程数怎么设置

    具体你可以用Linux系统跑一下试试,打开任务管理器观察一下就明白了。线程超不了,在出厂时就定死了,可以超频。

    魔王夫人 2人参与回答 2023-12-12
  • 核心线程数设置为0

    CPU的核心数,就是代表它是我们常说的几核电脑,现在CPU主要也就两家,AMD IAMD的CPU几核就是几核,当然有极个别的可以超频,也称开核,线程数,主要指I

    卷卷小白菜 6人参与回答 2023-12-05