gpt4 book ai didi

C++ 线程安全整数

转载 作者:IT老高 更新时间:2023-10-28 22:12:24 28 4
gpt4 key购买 nike

我目前已经为线程安全的整数创建了一个 C++ 类,它只是私有(private)地存储一个整数,并有一个公共(public)的 get 一组函数,这些函数使用 boost::mutex 来确保一次只能将一个更改应用于整数.

这是最有效的方法吗?我被告知互斥体非常耗费资源?该类被大量使用,非常迅速,因此很可能成为瓶颈......

Googleing C++ 线程安全整数返回对不同架构上整数运算的线程安全性的不清楚的看法和意见。

有人说 32 位架构上的 32 位 int 是安全的,但 32 上的 64 不是由于“对齐”而其他人说它是编译器/操作系统特定的(我不怀疑)。

我在 32 位机器上使用 Ubuntu 9.10,有些机器有双核,因此在某些情况下线程可能在不同的内核上同时执行,我使用的是 GCC 4.4 的 g++ 编译器。

提前谢谢...

请注意: 我标记为“正确”的答案最适合我的问题 - 但是其他答案中也有一些很好的观点,它们都值得一读!

最佳答案

有 C++0x 原子库,还有一个正在开发中的使用无锁技术的 Boost.Atomic 库。

关于C++ 线程安全整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2729453/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com