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

deepE 定位系统卡顿问题实战(一) ----------- 锁造成的阻塞问题

deepE介绍

deepE是一个开源的用于端侧(自动驾驶车,机器人)等环境的系统问题与性能分析工具。基于ebpf功能实现

deepE项目地址 欢迎star

测试程序

#include <iostream>
#include <thread>
#include <mutex>static std::mutex lock;void func1() {int loop = 5;std::lock_guard<std::mutex> l(lock);while (loop--) {std::this_thread::sleep_for(std::chrono::milliseconds(1000));}return;
}void func2() {std::lock_guard<std::mutex> l(lock);std::cout << "get lock success" << std::endl;
}int main() {std::thread t1(func1);std::this_thread::sleep_for(std::chrono::milliseconds(1000));std::thread t2(func2);t1.join();t2.join();
}

我们构造两个线程,其中一个线程在加锁状态下sleep 5s, 另外一个线程将会阻塞在锁上, 模拟实际环境中可能因锁造成的阻塞。另外主线程等待子线程结束也会阻塞在锁上.

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

相关文章:

  • YOLOv5改进 | 主干网络 | ODConv + ConvNeXt 增强目标特征提取能力
  • TIA博途WinCC通过VB脚本从 Excel中读取数据的具体方法介绍
  • 第5篇 区块链的技术架构:节点、网络和数据结构
  • vue长列表,虚拟滚动
  • 【实战场景】记一次UAT jvm故障排查经历
  • 线性代数--行列式1
  • tensorflow神经网络
  • Python基础001
  • 【udp报文】udp报文未自动分片,报文过长被拦截问题定位
  • 某网页gpt的JS逆向
  • 【python脚本】批量检测sql延时注入
  • 在C++中如何理解const关键字的不同用法(如const变量、const成员函数、const对象等)
  • JavaSEJava8 时间日期API + 使用心得
  • 【亲测解决】Python时间问题
  • Linux屏幕驱动开发调试笔记
  • Nginx Http缓存的必要性!启发式缓存有什么弊端?
  • 【RT摩拳擦掌】RT云端测试之百度天工物接入构建(设备型)
  • Mysql和ES使用汇总
  • Android中使用performClick触发点击事件
  • 重生之我要学后端01--后端语言选择和对应框架选择
  • C语言 | Leetcode C语言题解之第206题反转链表
  • Flink Window DEMO 学习
  • library source does not match the bytecode for class SpringApplication
  • Linux基础指令介绍与详解——原理学习
  • 【代码随想录算法训练Day52】LeetCode 647. 回文子串、LeetCode 516.最长回文子串
  • VUE项目安全漏洞扫描和修复
  • Nginx主配置文件---Nginx.conf
  • IOS Swift 从入门到精通:写入 Firestore数据库
  • 维克日记 v0.4.2:开发者友好的数字化笔记工具
  • 语音房平台交友,语聊APP系统开发线上语音交友平台成熟案例源码出售