首页 > 其他分享 >Executors.newFixedThreadPool(int nThreads)存在的缺陷

Executors.newFixedThreadPool(int nThreads)存在的缺陷

时间:2023-12-13 11:46:40浏览次数:28  
标签:nThreads Executors int LinkedBlockingQueue newFixedThreadPool ThreadPoolExecutor

一般来讲是不推荐直接使用JAVA提供的Executors类来初始化线程池,如果有需要可以自行通过ThreadPoolExecutor来封装进行初始化。

可以用newFixedThreadPool(int nThreads) 来简单分析下。

看一下源代码不难发现,问题的原因在于此方法返回的ThreadPoolExecutor使用的阻塞队列是LinkedBlockingQueue(此处涉及到线程池的一些核心构造参数,没有相关知识的小伙伴可以自行查阅一下)的空参构造,其代码如下

 问题就在此处,LinkedBlockingQueue的默认边界过大,很有可能因为任务过多导致内存溢出问题。

 

标签:nThreads,Executors,int,LinkedBlockingQueue,newFixedThreadPool,ThreadPoolExecutor
From: https://www.cnblogs.com/yushijieWannaBeStrong/p/17898722.html

相关文章

  • 2023.12 ~ After the ice turns into water / the sea I hang upside down will be yo
    COCI2023.11LOJ3999考虑把填数过程倒过来做,那么就变成了覆盖。设\(f(i,j,0/1)\)表示目前填进去\(i\)个数,且最后一个填的数是\(j\),并且\(j\)的位置在最左侧/最右侧的方案数。以\(f(i,j,0)\)为例,转移有:\(f(i,j,0)\tof(i+1,k,0)\),要求\(k\lej-1\)且\(j-1\equivk......
  • 远程控制 安全 SCADA wincc intouch 组态王
    1、scada系统,远程控制满足的条件:  防止机器出现紧急情况,比如伤人,材料返工,机器乱动等问题。网络要物理隔离,如果向日葵,todesk等互联网远程,需要有人在电脑和现场同时有人配合(配合也要注意安全),出现紧急情况方便处理。互联网远程,延时大,黑客攻击,人恶意破坏。局域网远程vnc,不加......
  • Python报错:performance hint: av/logging.pyx:232:5: the GIL to be acquired
     参考:https://stackoverflow.com/questions/77410272/problems-installing-python-av-in-windows-11https://github.com/PyAV-Org/PyAV/issues/1177  ================================  报错信息:C:\Windows.old\Users\chris>pipinstallavDefaultingtouserinstallatio......
  • docker启动容器报错:Error response from daemon: driver failed programming external
    安装的docker启动报错如下:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointnacos(2b0f4edff8f640559af9626936d1b38d965302ef525af483716e8e8c9121583e):(iptablesfailed:iptables--wait-tnat-ADOCKER-ptcp-d0/0--dp......
  • System Suspend and Device Interrupts 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/power/suspend-and-interrupts.html系统挂起和设备中断版权©2014IntelCorp.作者:[email protected]挂起和恢复设备中断在系统挂起后(即在所有设备的->prepare、->suspend和->suspend_late回调已经执行......
  • Footprint Expert创建Allegro封装没有焊盘的解决办法
    在创建Allegro封装之前,需要将padpath和psmpath设置为指向当前工作目录。1.配置“padpath”和“psmpath” Setup > UserPreferences在padpath, psmpath列表的顶部选择新建(插入)并放置一个“.”(英文句点)作为目录名称,移动“.”到表格顶部。指示PCB编辑器在当前工作目......
  • Tekton Trigger Interceptors 基础
    Interceptors概述Interceptor是针对特定平台的的事件处理器,在TriggerBinding之前运行。它允许您执行有效负载过滤、验证(使用秘密)、转换、定义和测试触发条件,以及实现其他有用的处理。一旦事件数据通过Interceptor,它就会在将有效负载数据传递到TriggerBinding之前转到Trigger。......
  • in /etc/default/grub:将标志添加intel_iommu=off到GRUB_CMDLINE_LINUX_DEFAULT 禁用英
    in /etc/default/grub:将标志添加intel_iommu=off到GRUB_CMDLINE_LINUX_DEFAULT禁用英特尔睿频加速:echo1|sudotee/sys/devices/system/cpu/intel_pstate/no_turbo......
  • SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
    BREAKPOINT在SAPSpartacusStorefront开源项目中是一个枚举类型,用于定义不同屏幕大小的断点。这个枚举类型默认包含五个屏幕名称:xs、sm、md、lg、xl,分别表示extrasmall、small、medium、large、extralarge的屏幕尺寸。这些尺寸通常与响应式设计中的断点概念相关联,用于确定......
  • 什么是前端 Web 应用响应式页面布局里的 Breakpoint 概念
    在Web前端开发中,响应式设计是一个非常重要的概念,它允许网页UI根据不同的设备屏幕大小进行适当的调整以优化用户体验。在这种设计中,breakpoint是一个关键的概念。我们可以把breakpoint理解为屏幕宽度的一种临界点,当屏幕宽度达到这个点时,我们会调整页面布局以适应这个新的屏幕......