- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我阅读了 cpp 文档并理解了这一点
Atomic_init
- 是非原子的并且容易发生数据竞争(所以它有问题) - 从指令中的“init”一词来看,我认为它必须用于第一次初始化变量。
Atomic_store - 以原子方式将值存储到原子变量中
那我们为什么不用atomic store来初始化变量呢?如果是这样,为什么他们有 atomic_init?
使用 atomic_init 比使用 atomic_store 有什么优势吗?
最佳答案
通常,您不需要以原子方式初始化任何内容,因为这意味着多个线程正在竞争使用未初始化的内存。
通常,内存在构造/初始化期间是单线程的,但随后,它以其他线程可以开始使用它的方式“发布”。
在全局原子的情况下,通常您会在更多线程存在之前尽早初始化它们。
使用 Atomic_init
的优点是明确表示初始化,并绕过少量开销。
关于multithreading - 使用 atomic_init 而不是 atomic_store 有什么优势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33070445/
我阅读了 atomic_store 的文档我明白它在做什么。问题是为什么这个非成员函数在那里?它提供了什么成员函数没有提供的东西?我的意思是 std::atomic 的成员函数,例如 std::ato
我阅读了 cpp 文档并理解了这一点 Atomic_init - 是非原子的并且容易发生数据竞争(所以它有问题) - 从指令中的“init”一词来看,我认为它必须用于第一次初始化变量。 Atomic_
我正在实现一个 AtomicStore 子类以将数据保存在 MySQL DB 中。除了获取请求的实现之外,该系统已经运行得很好。提取应该包括缓存的节点,但也会在底层 SQL 数据库上触发“选择”。 我
根据 en.cppreference.com , std::atomic_exchange 和 std::atomic_store 等价于线程安全的 std::swap。但这不是我使用 g++ 或 c
我正在尝试了解如何使用原子操作安全地管理共享指针。原来 VC11 (Visual studio 2012) 支持 C++11,因此可以允许在 std::shared_ptr 上进行读/写竞争。我想检查
我尝试了与 this 中描述的类似的东西问题: // create copy auto new_data(std::make_shared(*this->data)); ... // modify *
一个是模板类std::atomic的成员函数,一个是模板函数,看起来他们做的是同一件事。既然std是一个类库,为什么它同时提供类和非类版本,我认为是一样的操作? 它们之间有什么真正的区别吗? 最佳答案
使用 atomic_store 存储的数据和使用 atomic_load 加载的数据是否始终保持一致? 具体来说:C11 程序访问故意放置在现代 Intel CPU 缓存行之间边界上的 64 位数据。
以我为例 T是pcl::PointCloud>但问题应该代表任何类型 T .以下示例会产生错误: using pc = pcl::PointCloud >; boost::shared_ptr p(n
我是一名优秀的程序员,十分优秀!