摘要:
本文将带你在 Rocky Linux 系统上手把手完成 atop 的安装、后台服务的配置,以及至关重要的日志定时切割(Timer)设置。 01 安装 atop Rocky Linux 使用 dnf 作为包管理器。由于 atop 并不是基础系统的默认包,我们需要先安装 epel-release 扩展仓 阅读全文
posted @ 2026-05-17 16:09
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
BPF 之巅:洞悉Linux系统和应用性能 阅读全文
posted @ 2026-05-17 15:32
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
GDB 实战指南:如何排查多线程程序中的 while(true) 死循环 在 C/C++ 多线程服务端开发中,我们偶尔会遇到服务器 CPU 占用率异常飙高(甚至达到 100%)的情况。这往往是因为某个线程陷入了没有退出条件、且没有休眠(Sleep)机制的 while(true) 死循环中。 面对这类 阅读全文
posted @ 2026-05-17 15:23
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
线程池 前言 我相信,已经阅读到这里的各位,不会对“线程池”这个词感到陌生。大部分开发者早就自己使用、学习,乃至实现过线程池。那不如我们先来进行一下基础的名词解释。 什么叫线程池? “线程”没什么好说的,是 CPU 调度的最小单位,也是操作系统的一种抽象资源。 “池”?水池装着水,线程池则是装着线程 阅读全文
posted @ 2026-05-17 15:09
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
前言 和之前一样的,我们以 MSVC STL 的实现进行讲解。 std::future,即未来体,是用来管理一个共享状态的类模板,用于等待关联任务的完成并获取其返回值。它自身不包含状态,需要通过如 std::async 之类的函数进行初始化。std::async 函数模板返回一个已经初始化且具有共享 阅读全文
posted @ 2026-05-17 15:08
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
std::scoped_lock 的源码实现与解析 本单章专门介绍标准库在 C++17 引入的类模板 std::scoped_lock 的实现,让你对它再无疑问。 这会涉及到不少的模板技术,这没办法,就如同我们先前聊 std::thread 的构造与源码分析最后说的:“不会模板,你阅读标准库源码,是 阅读全文
posted @ 2026-05-17 15:07
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
std::thread 的构造-源码解析 我们这单章是为了专门解释一下 C++11 引入的 std::thread 是如何构造的,是如何创建线程传递参数的,让你彻底了解这个类。 我们以 MSVC 实现的 std::thread 代码进行讲解,MSVC STL 很早之前就不支持 C++11 了,它的实 阅读全文
posted @ 2026-05-17 14:39
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
协程 前言 既然是“现代” C++ 并发编程教程,怎么能不聊协程呢? C++20 引入了协程语法,新增了三个用作协程的关键字:co_await、co_yield、co_return。但并未给出标准协程库,协程库在 C++23 被引入。 希望您拥有 gcc14、clang19,Visual Studi 阅读全文
posted @ 2026-05-17 14:37
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
内存模型与原子操作 内存模型定义了多线程程序中,读写操作如何在不同线程之间可见,以及这些操作在何种顺序下执行。内存模型确保程序的行为在并发环境下是可预测的。 原子操作即不可分割的操作。系统的所有线程,不可能观察到原子操作完成了一半。 最基础的概念就是如此,这里不再过多赘述,后续还会详细展开内存模型的 阅读全文
posted @ 2026-05-17 14:33
BlackSnow
阅读(0)
评论(0)
推荐(0)
摘要:
同步操作 "同步操作"是指在计算机科学和信息技术中的一种操作方式,其中不同的任务或操作按顺序执行,一个操作完成后才能开始下一个操作。在多线程编程中,各个任务通常需要通过同步设施进行相互协调和等待,以确保数据的一致性和正确性。 本章的主要内容有: 条件变量 std::future 等待异步任务 在规定 阅读全文
posted @ 2026-05-17 14:32
BlackSnow
阅读(0)
评论(0)
推荐(0)

浙公网安备 33010602011771号