C++笔记之条件变量wait()的入参个数,及从忙等待、自旋锁、轮询、到阻塞休眠
📅 2026/7/27 6:31:56
👁️ 阅读次数
📝 编程学习
C++笔记之条件变量wait()的入参个数,及从忙等待、自旋锁、轮询、到阻塞休眠
code review!
文章目录
- C++笔记之条件变量wait()的入参个数,及从忙等待、自旋锁、轮询、到阻塞休眠
- 1. std::condition_variable::wait() 有几个入参?入参含义是?
- 1.1 版本一:1 个参数
- 1.2 版本二:2 个参数(更常用、更安全)
- 1.3 小结对比
- 2. 如果没有返回就相当于阻塞住了?
- 2.1 阻塞的具体过程
- 2.2 一句话总结
- 3. 自旋锁、忙等待、轮询、阻塞、条件等待的辨析
- 3.1 核心区分维度
- 3.2 各概念详解
- 3.2.1 忙等待/自旋检查(Busy-Waiting)—— 不休眠,连续检查
- 3.2.2 自旋锁(Spinlock)—— 忙等待的具体应用
- 3.2.3 轮询(Polling)—— 不休眠(或短暂休眠),间隔检查
- 3.2.4 阻塞(Blocking)—— 休眠,被动等待通知
- 3.2.5 条件变量 `wait()` —— 阻塞的具体实现
- 3.3 完整对比表
- 3.4 用一条"频谱"来理解它们的关系
- 3.5 一句话总结
condition_variable在计算机科学(特别是多线程编程)中,中文通常翻译为:
- 条件变量
在操作系统和 C++(如std::condition_variable)、Java、POSIX 线程(pthread)等编程语言或库的中文文档中,均统一使用条件变量这一称呼。它常与互斥锁(Mutex)配合使用,用于线程间的同步与等待通知机制。
1. std::condition_variable::wait() 有几个入参?入参含义是?
std::condition_variable::wait()有两种重载版本,参数个数分别是 1 个和 2 个。
1.1 版本一:1 个参数
voidwait(std::unique_lock<std
编程学习
技术分享
实战经验