Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
memory_order_consume 和 memory_order_acquire 之间的区别
我有一个关于GCC Wiki 文章 https gcc gnu org wiki Atomic GCCMM AtomicSync 在 总体摘要 标题下给出了以下代码示例 主题 1 y store 20 x store 10 话题2 if x
c
atomic
memorymodel
stdatomic
OpenMP while 循环中的手动同步
我最近开始使用 OpenMP 为大学的一个项目做一些 研究 我有一个矩形且均匀分布的网格 在该网格上我使用迭代方案求解偏微分方程 因此 我基本上有两个 for 循环 网格的 x 方向和 y 方向各一个 并由 while 循环包裹以进行迭代
c
openmp
atomic
racecondition
memorymodel
内存栅栏:获取/加载和释放/存储
我的理解std memory order acquire and std memory order release如下 Acquire意味着没有出现内存访问after获取栅栏可以重新排序到栅栏之前 Release意味着没有出现内存访问bef
c
memorybarriers
lockfree
stdatomic
memorymodel
堆栈本地对象的使用和对象的销毁之间是否存在“先发生”的关系?
我看了赫伯 萨特的演讲 https channel9 msdn com Shows Going Deep Cpp and Beyond 2012 Herb Sutter atomic Weapons 2 of 2 https channel
c
Multithreading
C11
memorymodel
stdatomic
为什么在构造函数中设置字段是(或不是)线程安全的?
假设您有一个像这样的简单类 class MyClass private readonly int a private int b public MyClass int a int b this a a this b b public int
c
Multithreading
volatile
memorymodel
使用 Turbo C 编译并链接到 .com 文件
我正在尝试使用 Turbo C 编译器和链接器编译一个简单的程序并将其链接到 DOS com 文件 我尝试了我能想到的最简单的 C 程序 void main Turbo C 链接器中是否有链接到 com 文件的命令行参数 我从链接器收到的错
Linker
DOS
x8616
memorymodel
turboc
现代 x86 硬件不能将单个字节存储到内存中吗?
说到 C 的并发内存模型 Stroustrup 的C 编程语言 第 4 版 第 1 节 41 2 1 说 就像大多数现代硬件一样 机器无法加载或存储小于单词的任何内容 然而 我的 x86 处理器已经有几年的历史了 它可以并且确实存储小于单词
c
Assembly
concurrency
x86
memorymodel
memory_order_seq_cst 和 memory_order_acq_rel 有什么不同?
对于两者来说 存储是释放操作 加载是获取操作 我知道memory order seq cst旨在对所有操作施加额外的总排序 但我无法构建一个示例 如果所有操作都不是这种情况memory order seq cst被替换为memory ord
c
C11
memorymodel
stdatomic
C++20 内存模型中释放序列定义的更改有何影响?
考虑这个程序 Initially std atomic
c
concurrency
C20
atomic
memorymodel
C++11内存_顺序_获取和内存_顺序_释放语义?
http en cppreference com w cpp atomic memory order http en cppreference com w cpp atomic memory order以及其他 C 11 在线参考 将 me
c
mutex
atomic
memorymodel
stdatomic
std::mutex 会创建栅栏吗?
如果我锁定一个std mutex我总会得到一个记忆栅栏吗 我不确定这是否暗示或强迫你获得栅栏 Update 根据 RMF 的评论找到了这个参考资料 多线程编程和内存可见性 http en wikipedia org wiki Memory
c
Multithreading
mutex
memorybarriers
memorymodel
什么是“顺序一致的执行,没有数据竞争”?
In JLS 17 4 5 订单前发生 http docs oracle com javase specs jls se7 html jls 17 html jls 17 4 5 它说 当且仅当所有顺序一致的执行都没有数据争用时 程序才能正
Java
memorymodel
GPU 上非原子写入的保证很弱吗?
OpenCL 和 CUDA 包含原子操作已有好几年了 尽管显然并非每个 CUDA 或 OpenCL 设备都支持这些操作 但是 我的问题是关于由于非原子写入而 共存 种族的可能性 假设网格中的多个线程都写入全局内存中的同一位置 我们是否可以保
CUDA
opencl
atomic
memorymodel
std::memory_order_seq_cst 的工作原理
我从以下位置获取了有关 std memory order seq cst 的示例 http en cppreference com w cpp atomic memory order http en cppreference com w c
c
C11
memorybarriers
memorymodel
stdatomic
非平凡可复制类型的 C++ 值表示
C 标准的当前草案 2019 年 3 月 有以下段落 basic types p 4 强调我的 T 类型对象的对象表示是 T 类型对象占用的 N 个 unsigned char 对象的序列 其中 N 等于 sizeof T T 类型对象的值
c
languagelawyer
memorymodel
使用 4 个线程获取/释放语义
我目前正在阅读 Anthony Williams 撰写的 C Concurrency in Action 他的清单之一显示了这段代码 他指出以下断言z 0可以开火 include
c
Multithreading
memorybarriers
memorymodel
stdatomic
std::memory_order 和指令顺序,澄清
这是一个后续问题this one https stackoverflow com questions 59626494 understanding memory order acquire and memory order release
c
C11
atomic
memorymodel
stdatomic
此信封实现是否正确使用 C++11 原子?
我编写了一个简单的 信封 类 以确保我正确理解 C 11 原子语义 我有一个标头和一个有效负载 编写器清除标头 填充有效负载 然后用递增的整数填充标头 这个想法是 读取器然后可以读取标头 memcpy 出有效负载 再次读取标头 如果标头相同
c
Multithreading
threadsafety
memorymodel
stdatomic
C11 原子获取/释放和 x86_64 缺乏加载/存储一致性?
我正在努力理解 C11 标准的第 5 1 2 4 节 特别是释放 获取的语义 我注意到https preshing com 20120913 acquire and release semantics https preshing com
c
x8664
memorybarriers
memorymodel
stdatomic
为什么atomic.StoreUint32比sync.Once中的普通分配更受欢迎?
在阅读Go源码时 我对src sync once go中的代码有一个疑问 func o Once Do f func Note Here is an incorrect implementation of Do if atomic Comp
go
concurrency
atomic
memorymodel
1
2
3
»