给定以下场景:
- 2 个线程(不多也不少)
- 一个共享变量(比如说一个 void *)
- 一个线程只写入一次变量(这是有保证的)
- 另一个线程负责读取变量
让读取器线程检查变量是否为空是否线程安全?明确地在 C 程序中?
示例代码:
线程 1:
void initOnStartup()
{
ptr = malloc(10);
}
线程 2:
void waitingForValue()
{
while(!ptr);
}
最佳答案
不,因为赋值 =
操作不是原子的。
关于c - 仅跨 2 个线程进行 NULL 检查是线程安全的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31927254/