Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么在构造函数中设置字段是(或不是)线程安全的?
假设您有一个像这样的简单类 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
.NET 多线程、易失性和内存模型
假设我们有以下代码 class Program static volatile bool flag1 static volatile bool flag2 static volatile int val static void Main s
c
NET
volatile
memorymodel
memory_order_relaxed 如何增加智能指针中的原子引用计数?
考虑以下摘自 Herb Sutter 关于原子的演讲的代码片段 smart ptr 类包含一个名为 control block ptr 的 pimpl 对象 其中包含引用计数refs Thread A smart ptr copy ctor
c
Multithreading
C11
memorymodel
relaxedatomics
Java内存模型:编译器重新排列代码行
众所周知 Java 语言允许编译器重新排列已编译代码行 只要重新排序对代码语义没有影响即可 然而 编译器只需关心语义 如从当前线程 如果这种重新排序影响多线程情况下的语义 通常会导致并发问题 内存可见性 我的问题 通过允许编译器使用这个 f
Java
memory
memorymodel
如何使用带有 C++ 内存模型的 Intel TSX?
我认为 C 尚未涵盖任何类型的事务内存 但 TSX 仍然可以以某种方式适合使用 as if规则 转变为由 C 内存模型控制的东西 那么 成功的 HLE 操作或成功的 RTM 事务会发生什么 说 存在数据竞争 但没关系 并没有多大帮助 因为它
c
languagelawyer
memorymodel
inteltsx
1
2
3
»