java线程池队列大小,java线程池队列大小设置

线程池-参数篇:2.队列

1、corePoolSize:核心线程数 maxPoolSize:最大线程数 当核心线程与任务队列已满时线程池会创建新线程处理任务。当线程数达到maxPoolSize后会拒绝线程抛出异常。

2、其中计算密集型阻塞系数为 0,IO 密集型阻塞系数接近 1,一般认为在 0.8 ~ 0.9 之间。比如 8 核 CPU,按照公式就是 2 / ( 1 – 0.9 ) = 20 个线程数 当线程数=corePoolSize,且任务队列已满时。

3、queueCapacity:任务队列容量(阻塞队列)当核心线程数达到最大时,新任务会放在队列中排队等待执行。maxPoolSize:最大线程数 当线程数=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务。

4、maximumPoolSize maximumPoolSize是线程池能够容纳同时执行的最大线程数。keepAliveTime keepAliveTime是多余的空闲线程存活时间。unit unit是keepAliveTime的时间单位。

java线程池队列大小,java线程池队列大小设置

线程池七大核心参数

1、线程池七大核心参数是corePoolSize、maximumPoolSize、KeepAliveTime、unit、workQueue、threadFactory、handler。

2、线程池七大核心参数如下:corePoolSize核心线程数目-池中会保留的最多线程数。maximumPoolSize最大线程数目-核心线程+救急线程的最大数目。

3、池中的最大线程数。long keepAliveTime 当线程的数量大于corePoolSize,这是多余空闲线程的最大存活时间,当空间时间达到keepAliveTime值时,多余的线程会被销毁并等待新任务。

4、ThreadPoolExecutor的重要参数 corePoolSize:核心线程数 maxPoolSize:最大线程数 当核心线程与任务队列已满时线程池会创建新线程处理任务。当线程数达到maxPoolSize后会拒绝线程抛出异常。

java常用的几种线程池实例讲解

newFixedThreadPool 创建一个指定工作线程数量的线程池。每当提交一个任务就创建一个工作线程,如果工作线程数量达到线程池初始的最大数,则将提交的任务存入到池队列中。

Java里面线程池的顶级接口是Executor,但是严格意义上讲Executor并不是一个线程池,而只是一个执行线程的工具。真正的线程池接口是ExecutorService。ThreadPoolExecutor是Executors类的底层实现。

java常用的线程池有三种:newFixedThreadPool public static ExecutorService newFixedThreadPool(int nThreads)创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。

首先说明下java线程是如何实现线程重用的 线程执行完一个Runnable的run()方法后,不会被杀死 当线程被重用时,这个线程会进入新Runnable对象的run()方法12 java线程池由Executors提供的几种静态方法创建线程池。

ava通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。

如何设定线程池的大小

1、线程池需要设置合适的大小,假如设置的太大,线程上线文切换过于频繁,造成大量资源开销,反而会使性能降低。假如设置的太小,存在很多可用的处理器资源却未在工作,会造成资源的浪费和对吞吐量造成损失。

2、如果我们将这一比例称之为 WT/ST,那么对于一个具有 N 个处理器的系统,需要设置大约 N*(1+WT/ST) 个线程来保持处理器得到充分利用。处理器利用率不是调整线程池大小过程中的唯一考虑事项。

3、newCachedThreadPool:设定一个可缓存的线程池,当线程池长度超过处理的需要,可以灵活回收空闲线程,如果没有可以回收的才新建线程。没有核心线程数,当线程没有任务60s之后就会回收空闲线程,使用有界队列。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年5月15日 19:01:06
下一篇 2024年5月15日 19:12:27

相关推荐

  • javaservlet是不是线程安全的,servlet线程安全吗

    java问题,servlet问题,servlet在什么时候被初始化?它是线程安全吗? Servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求。所以Servlet是线程不安全的。 ServletContext是可以多线程同时读/写属性的,线程是不安全的。要对属性的读写进行同步处理或者进行深度Clone()。 Ser…

    2024年5月23日
    5200
  • java线程中再创建线程,JAVA创建线程

    Java多线程初学者指南(3):使用Runnable接口创建线程 1、方式一:通过继承Thread类创建线程Java中的线程类是Thread类,我们可以通过继承Thread类创建一个新的线程。 2、(3)调用线程对象的start()方法来启动该线程。通过Runnable接口创建线程类 (1)定义runnable接口的实现类,并重写该接口的run()方法,该r…

    2024年5月23日
    4600
  • 关于java如何查找线程的信息

    kill-3生成的线程堆栈怎么查看 通过给JVM发送一个SIGQUIT信号,您可以得到一个线程堆。 threaddump文件就是文本文件,可以使用任何文本查看工具进行查看; 建议使用比较高效的工具,比如more, less 等。 “Full thread dump”是一个全局唯一的关键字,你可以在中间件和单机版本Java的线程堆栈信息的输出日志中找到它(比如…

    2024年5月23日
    4000
  • linux数字顺序,linux按数字大小排序

    写一个linux脚本利用冒泡排序法将输入的数字从大到小排序 1、main(){ int a[6]; /*定义一个整型数组。*/ int i,j,temp; /*定义循环变量和中间变量。*/ for(i=0;i5;i++) /*进行循环输入变量。*/ { printf(please enter a number:\n); /*输出提示。 2、下面是算法:for…

    2024年5月23日
    4000
  • java线程池博客园,java线程池使用方法

    Java线程:新特征-线程池 java线程池的实现原理很简单,说白了就是一个线程集合workerSet和一个阻塞队列workQueue。当用户向线程池提交一个任务(也就是线程)时,线程池会先将任务放入workQueue中。 corePoolSize:核心池的大小,这个参数跟后面讲述的线程池的实现原理有非常大的关系。 所谓线程池就是将线程集中管理起来,当需要线…

    2024年5月23日
    3900
  • java线程池工具类,java线程池的工作流程

    java创建线程池有哪些 java线程池的实现原理很简单,说白了就是一个线程集合workerSet和一个阻塞队列workQueue。当用户向线程池提交一个任务(也就是线程)时,线程池会先将任务放入workQueue中。 ava通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,…

    2024年5月23日
    3300
  • excel条形码变,excel条形码大小调整

    excel怎么制作条形码 在电脑上打开excel文件,依次点击菜单栏选项“开发工具/插入”。然后点击ActiveX控件栏右下角的“其他控件”图标。在出现的“其他控件”对话框中选择Microsoft Barcode Control 10,然后点击确定。 excel表格绘制出条形码图形首先启动excel2010,执行文件-选项命令,在弹出的对话框中选择自定义工具…

    2024年5月23日
    3400
  • linux分区大小查看,linux查看分区空间

    关于linux如何查看有几个硬盘每个硬盘分了几个区? 1、首先登录linux服务。有几种方法可以查看,我们使用第一种方法,命令“df”。命令“df -lh”使用此命令使磁盘使用更加清晰。命令“df -a”是所有文件系统的用法。命令“df -i”显示inode信息。 2、使用命令”df -l和df -h“具体查看分区使用状况。实际这两个命令具有一样的作用区别是…

    2024年5月22日
    4100
  • linux查看当前作业,linux查看作业队列

    linux下如何查看已有的计划任务 1、一般用命令:crontab –l;crontab命令简介:crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 2、这个没有具体命令,不过你可以在计划任务的脚本中添加一些生成脚本执行结果的验证日志…

    2024年5月22日
    4100
  • java如何统计文件数量,java统计文件夹大小

    java遍历某个文件夹统计出有多少个java文件和jsp文件?怎么写? 1、listFiles方法返回当前目录内所有文件和子目录的File对象数组。获取其大小即文件和子目录的数量总和。遍历数组,用isDirectory方法检验元素是否为目录,这样就把子目录数出来了。做差就是文件的数量了。 2、);list(new File(path));return fil…

    2024年5月22日
    5700

发表回复

登录后才能评论



关注微信