c++ - 有原子 |= 操作吗?

标签 c++ thread-safety atomic lockless

是否存在原子 |= or 和 atomic or 这样的东西?如果不是,在需要线程安全的变量中设置位的推荐技术是什么? (我在避免锁)

最佳答案

C++03 中没有这样的东西,但您可以使用供应商特定的功能。例如,您可以使用 InterlockedOr在 window 上。在 C++0x 中,您可以使用 atomic_fetch_or

请注意,原子操作也需要锁定,尽管它在硬件级别上仍然很昂贵。

关于c++ - 有原子 |= 操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6479226/

相关文章:

c++ - 我如何将此信号连接到插槽

c++ - 每个线程都有自己的堆栈吗?

c++ - 如何将一对迭代器转换为 View ?

c# - 以下 C# 代码线程安全吗?

c# - 对控件的通用 WPF 多线程访问

objective-c - 在后台线程上搜索

java - Roller 中的 session 安全违规

c++ - INSERT into database fetch id 执行后如何获取插入行的ID?

java - 即使目标文件已经存在,如何在Java中以原子方式重命名文件?

c++ - 通过 shared_ptr 返回的 Singleton 对象是线程安全的吗?