当前位置: 首页 > news >正文

线程池死循环系统卡住

案例: 


同一个线程池。
首先核心线程数是8,我一次提交了 > 8个主任务,然后主任务又各自开启了几个子任务。
所以子任务没有核心线程来跑,只能放进阻塞队列等。
但主任务又等待子任务的结果,不释放占用线程,子又没得执行

死循环,导致系统卡住

原因:

例如:线程池核心线程数为8个,最大线程数为200个,阻塞队列为15个。
此时任务直接下发了10个主线程,每个主线程内部又下发了新的子任务。 
当线程池接收到任务后,先判断核心线程有没有空余,如果有则创建并且执行,如果核心线程数8个都被占了,此时剩余的2个会加入到阻塞队列中等待。

此时你会发现,线程池内部发生了死锁,也就是死循环。 互相等待。

http://www.lryc.cn/news/118989.html

相关文章:

  • 多用户微商城多端智慧生态电商系统搭建
  • 基于Kubeadm部署k8s集群:下篇
  • 【Python matplotlib】鼠标右键移动画布
  • Sleuth+Zipkin服务链路追踪
  • 100G光模块的应用案例分析:电信、云计算和大数据领域
  • MongoDB安装和配置
  • 解决createRoot is not a function
  • 【Windows 常用工具系列 6 -- CSDN字体格式(字体、颜色、大小)、背景色设置】
  • 带着问题学习分布式系统
  • element vue2 动态添加 select+tree
  • MySQL Linux自建环境备份至远端服务器自定义保留天数
  • 2023下半年软考改成机考,对考生有哪些影响?
  • MySQL存储结构及索引
  • 2023 RISC-V中国峰会 安全相关议题汇总
  • 要过软考,务必先搞清楚这3点
  • windows常用shell命令大全
  • skywalking忽略调用链路中的指定异常
  • 学习笔记|printf函数的实现|不同操作系统中的换行|数的进制:2进制、10进制、16进制转换|STC32G单片机视频开发教程(冲哥)|第五集:C语言基础
  • 线性代数复习公式整理(自用/持续更新)
  • QEMU源码全解析34 —— Machine(4)
  • 引用Boost库 CMakeList的写法
  • Kibana 可视化数据分析以及es常用的数据分析函数
  • golang云原生怎么学?
  • Jenkins+Nginx+vue
  • 【vue 监听页面滑动到底部】
  • (一)创建型设计模式:2、单例模式(C++实现实例 线程安全)
  • 《练习100》86~90
  • C++——命名空间、输入、输出
  • 解锁滴滴ES的性能潜力:JDK 17和ZGC的升级之路
  • Permutation and Primes 2023牛客暑期多校训练营8 J