|
|
1
1
在值适合单个寄存器的情况下,例如内存对齐指针,这是安全的。在其他情况下,读取或写入值可能需要多条指令,读取线程可能会获取损坏的数据。如果您不确定读写是否在所有使用场景中都只接受一条指令,请使用原子读写。 |
|
|
2
4
为了使其线程安全,您必须对变量进行原子读/写,它在所有计时情况下都是不稳定的。在Win32下有互锁函数,在Linux下可以 build it yourself with assembly
如果你不反对GPL的话
http://www.threadingbuildingblocks.org
|
|
|
3
1
取决于编译器、体系结构和操作系统。POSIX(因为这个问题被标记为pthreads,我假设我们不是在讨论windows或其他线程模型)和C没有给出足够的约束来回答这个问题。
|
|
|
4
0
不幸的是,您不能对纯C中的原子做任何假设。 |
|
|
5
0
好吧,这看起来很好。。在这种情况下唯一的问题就是 让线程A作为检查线程,B作为修改线程。。
|
|
6
-2
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |