我需要在读取共享变量之前锁定吗? [关闭]

问题描述 投票:0回答:2

我对使用C进行多个进程/线程编程完全陌生,我知道如果一个进程需要修改共享变量,则需要在执行此操作之前将其锁定。

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

c linux
2个回答
2
投票

如果该变量可以由另一个线程或进程更改,则为是。如果您有很多读取进程/线程,则可以考虑实现读写锁,该锁允许许多读者一次访问。

取决于您实际上在做什么,您可能还希望研究原子,因为它们不需要使用锁。

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


0
投票

是。如果一个变量在多个进程之间共享,则您需要这样做,因为它避免了Ur结果中的错误,即一个进程想要对他需要检查的共享变量/数据进行读/写/修改,因为变量是空闲的还是不行,那么他需要继续。如果它有空,则将其锁定并对其进行处理,否则它必须等到它有空为止

© www.soinside.com 2019 - 2024. All rights reserved.