- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
*请理解我不是来自英语国家,所以如果您不明白我的问题,请告诉我,以便我换句话解释。 J
atomic_thread_fence 的围栏作用域是否是一个被指定为“{}”的作用域单元?
例如,MainActivity C++
//section A
if(A == 1)
{
//section B
atomic_thread_fence(..);
//section C
}
//section D
关于上面的代码,我想知道围栏是只在B区和C区应用,还是在其他区也应用。
谢谢~
最佳答案
栅栏没有范围的概念。相反,他们有在栅栏之前加载/存储的概念,以及在栅栏之后加载/存储的概念:在您的示例中,加载/存储 before 包括 B 和 A 部分(以及之前)的那些部分。围栏之后的加载和存储包括 C 和 D 部分(以及之后)的加载和存储。
并且栅栏只有在A == 1
时才会有效果(即,位于未被采纳的分支中的栅栏不会有任何副作用)。
关于c++ - atomic_thread_fence 的范围是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51399215/
*请理解我不是来自英语国家,所以如果您不明白我的问题,请告诉我,以便我换句话解释。 J atomic_thread_fence 的围栏作用域是否是一个被指定为“{}”的作用域单元? 例如,MainAc
我想在构造函数中初始化一个字段,之后再也不更改它。我希望保证在构造函数完成后,每次读取字段都读取初始化值,无论读取发生在哪个线程中。 基本上,我想要与 Java 中的 final 字段提供相同的保证。
完全/通用内存屏障是指相对于系统其他组件而言,屏障之前指定的所有LOAD和STORE操作似乎都发生在屏障之后指定的所有LOAD和STORE操作之前的情形。 根据cppreference,memory_
首先,我想列出我对此的一些理解,如果我错了,请指正。 x86中的MFENCE可确保完全隔离 顺序一致性可防止对STORE-STORE,STORE-LOAD,LOAD-STORE和LOAD-LOAD重新
编译: g++ -std=c++0x -Wall -pthread test2.cc -o hello 我收到这个错误: test2.cc: atomic_thread_fence is not a
下面的代码显示了两种通过原子标志获取共享状态的方法。读取器线程调用 poll1() 或 poll2() 来检查写入器是否已发出标志。 投票选项#1: bool poll1() { return
在 Ubuntu 12.04 系统上,当我尝试编译以下代码时: #include int a; int main() { a = 0; std::atomic_thread_fence(st
有人问我 f 和 g 这两个函数之间的区别: atomic var(1); int a = 1; void f() { a=123; var.store(0, std::memory_order_
cppreference.com 提供this note about std::atomic_thread_fence (强调我的): atomic_thread_fence imposes stro
Why does this `std::atomic_thread_fence` work的后续问题 由于虚拟互锁操作优于_mm_mfence,并且有很多方法可以实现它,哪个互锁操作以及应使用哪些数据
我猜不出为什么这个函数需要“C”而不是“C++”链接。 最佳答案 由 LWG issue 1479 添加这是针对 C++11 的最后一分钟评论。 此更改的基本原理是 C 语言兼容性(C11 线程库在
我是一名优秀的程序员,十分优秀!