C++20的jthread使用基础及实例分析

让我们回到C++编程中,在传统的 C++ 编程时(C++11 前)并没有统一的多线程编码标准。通常在 Linux 平台中使用 <pthread.h> 库,在 Windows 的 <windows.h> 也有一套自己的方式。自 C++11 起 C++ 标准统一了多线程的编码方式,即规定了标准头文件 <thread>。

一般来说,我们希望将线程的生命周期与创建线程的对象保持一致。也就是 join-thread

因此,我们可以简单封装一个 jthread。这里不严谨的直接继承了 std::thread。

需要注意一下将 std::thread 的构造 using 到子类,并注意其析构是非虚的。这里也仅仅是做一个 demo 展示使用。

在 gcc 中的使用效果如下:主线程能够等待子线程处理完毕后再继续运行并正常结束。

复制代码
1 Main Start
1~jthread
2 jthread Start
2 jthread End
1 Main End
相关推荐
小江的记录本5 小时前
【JVM虚拟机】类加载机制:类加载全流程:加载→验证→准备→解析→初始化(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·算法·安全·spring·面试
jameslogo8 小时前
类加载机制
jvm
雪度娃娃10 小时前
转向现代C++——优先选用删除函数而非private未定义函数
java·jvm·c++
努力发光的程序员10 小时前
面试官与程序员谢飞机的3轮Java大厂面试问答实录:涵盖Spring Boot、微服务与数据库技术
java·jvm·spring boot·redis·面试·hibernate·microservices
橙淮10 小时前
并发编程(四)
java·jvm
Python+9910 小时前
C++ 内存模型 & 底层原理
java·jvm·c++
右耳朵猫AI11 小时前
Java & JVM技术周刊 2026年第19周
java·开发语言·jvm
1candobetter11 小时前
单接口性能测试实践总结:压测方案设计、成功判定与 JVM 监控分析
java·jvm·压力测试·测试
plainGeekDev1 天前
Android运行时面试题:ART和JVM的区别都搞不清,别写精通了
jvm·面试·kotlin
疯狂打码的少年1 天前
CISC vs RISC 对比
jvm·笔记