上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 24 下一页
摘要: 协程 前言 既然是“现代” C++ 并发编程教程,怎么能不聊协程呢? C++20 引入了协程语法,新增了三个用作协程的关键字:co_await、co_yield、co_return。但并未给出标准协程库,协程库在 C++23 被引入。 希望您拥有 gcc14、clang19,Visual Studi 阅读全文
posted @ 2026-05-17 14:37 BlackSnow 阅读(32) 评论(0) 推荐(0)
摘要: 内存模型与原子操作 内存模型定义了多线程程序中,读写操作如何在不同线程之间可见,以及这些操作在何种顺序下执行。内存模型确保程序的行为在并发环境下是可预测的。 原子操作即不可分割的操作。系统的所有线程,不可能观察到原子操作完成了一半。 最基础的概念就是如此,这里不再过多赘述,后续还会详细展开内存模型的 阅读全文
posted @ 2026-05-17 14:33 BlackSnow 阅读(24) 评论(0) 推荐(0)
摘要: 同步操作 "同步操作"是指在计算机科学和信息技术中的一种操作方式,其中不同的任务或操作按顺序执行,一个操作完成后才能开始下一个操作。在多线程编程中,各个任务通常需要通过同步设施进行相互协调和等待,以确保数据的一致性和正确性。 本章的主要内容有: 条件变量 std::future 等待异步任务 在规定 阅读全文
posted @ 2026-05-17 14:32 BlackSnow 阅读(28) 评论(0) 推荐(0)
摘要: 共享数据 本章节主要内容: 多线程共享数据的问题 使用互斥量保护共享数据 保护共享数据的其它方案 有关线程安全的其它问题 在上一章内容,我们对于线程的基本使用和管理,可以说已经比较了解了,甚至深入阅读了部分的 std::thread 源码。所以如果你好好学习了上一章,本章也完全不用担心。 我们本章, 阅读全文
posted @ 2026-05-17 14:30 BlackSnow 阅读(27) 评论(0) 推荐(0)
摘要: 使用线程 在标准 C++ 中,std::thread 可以指代线程,本章中,使用线程也就是代表使用 std::thread (C++20 std::jthread)。 本章围绕着它们来讲解。 Hello World 在我们初学 C++ 的时候应该都写过这样一段代码: #include <iostre 阅读全文
posted @ 2026-05-17 14:30 BlackSnow 阅读(18) 评论(0) 推荐(0)
摘要: 基本概念 前言 在我们谈起“并发编程”,其实可以直接简单理解为“多线程编程”,我知道你或许有疑问:“那多进程呢?” C++ 语言层面没有进程的概念,并发支持库也不涉及多进程,所以在本教程中,不用在意。 我们主要使用标准 C++ 进行教学,也会稍微涉及一些其它库。 并发 并发,指两个或两个以上的独立活 阅读全文
posted @ 2026-05-17 14:27 BlackSnow 阅读(19) 评论(0) 推荐(0)
摘要: 0.1 GDB 安装 1. Linux 系统 大多数 Linux 发行版都可以通过包管理器直接安装: Ubuntu/Debian 系列: sudo apt update sudo apt install gdb -y Fedora/RHEL 系列: sudo dnf install gdb -y # 阅读全文
posted @ 2026-04-07 21:20 BlackSnow 阅读(97) 评论(0) 推荐(0)
摘要: 3.1break 命令进阶 break 在(file文件的)function函数中设置一个断点 [file:]function 3.1.1 break<行号> wangguangbo@DESKTOP-O5D0MDL:/mnt/d/CMD$ g++ main.cpp FUN2.h FUN2.cpp - 阅读全文
posted @ 2026-04-07 21:13 BlackSnow 阅读(18) 评论(0) 推荐(0)
摘要: 好的,我给你整理一个完整的流程,包括在 Ubuntu/Debian 系统上使用 apt 安装 Protobuf 和依赖,以及在 CMake 中的示例配置,适合 C++ 项目直接使用。 使用 apt 安装 Protobuf 及依赖流程(C++) 1. 安装系统依赖 sudo apt update su 阅读全文
posted @ 2026-03-31 13:20 BlackSnow 阅读(89) 评论(0) 推荐(0)
摘要: 1. 前提条件 操作系统:Ubuntu / Debian(其他 Linux 系统类似) 安装编译工具和依赖: sudo apt update sudo apt install -y build-essential autoconf automake libtool pkg-config wget t 阅读全文
posted @ 2026-03-31 11:54 BlackSnow 阅读(108) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 24 下一页