小编zal*_*h64的帖子

为什么 C++ std 库本质上不是线程安全的?

我知道,从根本上讲,在 C++ 中使用类不是线程安全的,因为它们的函数不是原子的,这可能会导致竞争条件。

在学习在类中编写多线程程序时,我们必须包装在互斥体中读取/写入对象的关键部分,以确保原子性。在花时间阅读了一些标准库之后,我很好奇为什么 C++ 不自动为用户执行此操作。

我的理解是,互斥体只包含一个布尔值或整数来表示锁的状态,以及某种形式的队列来表示等待锁的所有线程。鉴于这并不是很大的开销,为什么标准库不自动提供这种抽象并用仅该类本地的互斥体(即不是全局互斥体)包装其所有函数?

c++ multithreading std

-2
推荐指数
1
解决办法
209
查看次数

标签 统计

c++ ×1

multithreading ×1

std ×1