线程研究
文章平均质量分 94
把复杂的C++知识拆解得清晰易懂,把实战中的经验转化为可复用的方法论。在这里,你不会看到空洞的理论堆砌,每一篇内容都源于真实的开发场景与学习困惑
-西门吹雪
世味年来薄似纱,谁令骑马客京华。
小楼一夜听春雨,深巷明朝卖杏花。
矮纸斜行闲作草,晴窗细乳戏分茶。
素衣莫起风尘叹,犹及清明可到家。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++线程之std::async浅析
指定该策略时,std::async会立即创建一个新的线程(或复用线程池中的线程),并在新线程中执行目标任务,任务的执行与主线程完全并行。指定该策略时,任务不会立即执行,也不会创建新线程;只有当调用或时,任务才会在调用者线程(通常是主线程)中同步执行。这是std::async未指定策略时的默认行为(C++17 也可写为),本质是“异步或延迟”的二选一,由编译器/操作系统决定采用哪种方式。std::asyncasync强制并行,deferred延迟同步,默认策略由系统自动选择;原创 2026-01-06 17:36:04 · 21 阅读 · 0 评论 -
c++线程之标准库的并行算法研究
C++17并行算法基于执行策略seqparpar_unseq)驱动,无需手动管理线程,核心头文件为<numeric>;常用并行算法包括(遍历)、std::sort(排序)、(转换)、(聚合),各有明确适用场景;并行算法底层执行流程为「任务拆分→线程调度→并行执行→结果汇总(聚合类)→同步返回」;关键优化点:优先使用par策略、选择随机访问迭代器容器、保证无数据竞争、仅大数据量场景启用并行。执行策略完整名称常用别名执行模式线程特性核心约束适用场景纯串行执行单线程(调用线程)原创 2026-01-04 17:34:38 · 131 阅读 · 0 评论 -
c++线程之任务
C++中的任务是一段待执行的逻辑单元,它封装了需要完成的具体工作(如计算、IO操作、业务逻辑等),本质上表现为「可调用对象(Callable Object)」—— 任务只定义「要做什么」,不关心「谁来执行(线程)」和「什么时候执行(同步/异步)」。任务 = 一份「工作清单」(只写了要做什么,没人执行就是废纸);线程 = 一个「工人」(消耗粮食(系统资源),能按清单执行工作,一个工人可以做多份清单,一份清单也可以分给多个工人做);原创 2026-01-04 16:58:17 · 91 阅读 · 0 评论 -
c++线程之再研究研究多线程
启动差异:C++11 线程无需手动调用start()构造时传入可调用对象即自动启动底层线程(与 Java 线程核心区别)。可连接状态对象的「可连接性」是核心,joinable()返回true时,必须调用join()或detach(),否则对象析构崩溃。阻塞场景:C++11 标准库支持三种常见阻塞:时间阻塞(sleep_for)、锁竞争阻塞(std::mutex)、条件阻塞(终止处理:线程内未捕获的异常会导致程序崩溃,需在线程内部做好异常捕获;线程正常终止后,通过join()回收资源。分离线程。原创 2026-01-04 16:55:34 · 397 阅读 · 0 评论 -
C++线程之内存模型
该结构体的内存模型受位域规则:0截断)、自然对齐(char填充3字节、double8字节对齐)、类型大小(int4字节、double8字节)共同影响;汇编代码通过成员偏移地址和位运算指令,精准验证了理论布局,位域成员依赖整数单元+位运算访问,区分结构体自身内存与堆内存;核心关键:匿名位域:0强制结束位域单元、基础类型对齐要求、非基础类型(std::string)的内存分布特性。单个线程内:所有内存操作严格按照代码的书写顺序执行(无指令重排,或重排对程序员完全透明)跨线程间。原创 2026-01-04 15:21:25 · 516 阅读 · 0 评论
分享