c - 在读取共享变量之前需要锁定吗?

标签 c linux

<分区>

我完全不熟悉 C 中的多进程/线程编程,我知道如果一个进程需要修改一个共享变量,它需要在这样做之前锁定。

如果一个进程需要读取共享变量,是否需要加锁?

最佳答案

如果该变量可以被另一个线程或进程更改,那么可以。如果你有很多读进程/线程,你可以考虑实现一个读写锁,让很多读者同时访问。

根据您的具体操作,您可能还想研究原子,因为它们不需要使用锁。

https://en.cppreference.com/w/c/language/atomic

关于c - 在读取共享变量之前需要锁定吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47342552/

相关文章:

c - 为什么下面的程序有效,为什么输出 "worldhello"?

linux - Libcurl 未更新

linux - 如何在 Ubuntu 16.04.1 LTS 中允许文件和文件夹权限

linux - 在 curl 或 wget 之后,Bash 变量未在输出重定向中迭代

切换到/MT 后的 C++ 链接问题

c - OpenCL clock_gettime 与内核分析 : strange results

c - 关于 C 中的转换说明符

c - 使用 C 中的索引访问枚举

linux - 在运行 Angular 2 快速入门时解决或修复 Linux 上的 NPM lite-server 错误

linux - Linux 中的 grep 空白字段