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

JVM 调优篇9 调优案例6- cpu使用过载解决办法【超赞】

一  cpu过载说明

1.1 背景说明

如果线程死锁,那么线程一直在占用CPU,这样就会导致CPU一直处于一个比较高的占用率。

1.2 代码

模拟一个死锁的代码

public class JstackDeadLockDemo {/*** 必须有两个可以被加锁的对象才能产生死锁,只有一个不会产生死锁问题*/private final Object obj1 = new Object();private final Object obj2 = new Object();public static void main(String[] args) {new JstackDeadLockDemo().testDeadlock();}private void testDeadlock() {Thread t1 = new Thread(() -> calLock_Obj1_First());Thread t2 = new Thread(() -> calLock_Obj2_First());t1.start();t2.start();}/*** 先synchronized  obj1,再synchronized  obj2*/private void calLock_Obj1_First() {synchronized (obj1) {sleep();System.out.println("已经拿到obj1的对象锁,接下来等待obj2的对象锁");synchronized (obj2) {

http://www.mrgr.cn/news/33089.html

相关文章:

  • Docker 基础命令介绍和常见报错解决
  • 如何平滑切换Containerd数据目录
  • 接口类和抽象类在设计模式中的一些应用
  • LeetCode100之相交链表(160)--Java
  • 基于ZYNQ7035的PS-linux实现FTP服务器移植
  • 数据中台解决方案
  • 京东-第2题-撞车
  • 机器学习——Stacking
  • Zotero——导出已标注好的文件的方法
  • 在Python中,类是用于定义对象的蓝图或模板,而对象则是根据类创建的具体实例
  • AWS 管理控制台
  • 中国IT产业的新机遇与挑战
  • JavaScript ---案例(统计字符出现次数)
  • 【Java】接口interface【主线学习笔记】
  • 【大模型实战篇】关于Bert的一些实操回顾以及clip-as-service的介绍
  • [Python数据拟合与可视化]:使用线性、多项式、指数和高斯模型拟合数据
  • gbase8s数据库常见的索引扫描方式
  • GAMES101(作业4~5)
  • Spring中的Web Service消费者集成(应该被淘汰的技术)
  • 类和对象(上)
  • 一些音频文件转Wav
  • BUUCTF逆向wp [WUSTCTF2020]Cr0ssfun
  • 【笔记】第三节 组织与性能
  • 计算机毕业设计 数字化农家乐管理平台的设计与实现 Java实战项目 附源码+文档+视频讲解
  • C++入门(03)萌新问题多(二)
  • ftrace - 几种tracer的打印例子