c - 一个线程只读取,一个线程只修改。这个变量是否也需要与 linux c 的互斥锁?
问题描述
我遇到了一个问题。发现了一个类似的问题,但是看了之后觉得没有得到想要的答案。另外,我想在问题下添加评论,但我目前没有权限。(50声望)
我的问题:我有 2 个线程,线程 1 只是随时修改变量 var_A,线程 2 将执行循环。当线程 2 到达某个特定步骤并找到 var_A = 1 时,它将执行动作 1。如果找到 var_A = 2 ,它会执行动作2。在这种情况下,我还需要添加一个互斥锁吗?
如果添加线程 3 需要做类似线程 2 的事情,但是只访问 var_A 的值而不修改它,我此时是否需要添加互斥锁?
根据上面类似问题的答案,如果变量不是单字节类型而是多字节类型,我需要加一个互斥锁,因为它可能适合读取和修改var_A的一部分。但现在我只是 char 类型的 var_A。我想确保在这种情况下不需要添加互斥锁。
解决方案
推荐阅读
- python - Python3:如何在 for 循环中传递由迭代器构造的变量名
- c++ - 如何在 Visual Studio 中以编程方式执行“查找所有引用”
- javascript - 在不超出预算的情况下,在每种类型中选择一项价值最高的项目
- python - 替换缩写列表中的点?
- python - 将元素添加到 2D numpy 数组的内部数组
- asp.net - Angular 7 在客户端将布尔值 true 更改为 false。Angular 应用程序的 html 页面
- c++ - 使用 I/O 流从一个文件读取并写入另一个文件
- android-livedata - 对 LiveData 观察感到困惑
- powershell - 使用 PowerShell 在 IP 地址列表中选择所有唯一的第三个八位字节
- google-cloud-platform - 使用gcloud sdk调用云功能时如何传递消息的属性?