我是否需要一个互斥锁来保护一个可以通过 sysfs get/set 的 int 值?
Do I need a mutex to protect a int value which could be get/set via sysfs?
多个用户 space 进程可以同时访问这个值,所以我想我们应该使用一些锁或内存屏障来保证安全,但我可以在 linux 驱动程序中找到很多代码谁没有,或者只是保护写入案例。
我们真的需要一个用于读取和写入的互斥量吗?
代码执行取决于CPU和系统。实际上,如果操作是 atomic,你可以在没有同步技术的情况下做到这一点。只要您对此不确定,最好使用同步对象。对于 int/dword 值,大多数时候人们在没有 sych 对象的情况下这样做。
阅读这篇文章
http://preshing.com/20130618/atomic-vs-non-atomic-operations/
还有同样的问题Are C++ Reads and Writes of an int Atomic?
多个用户 space 进程可以同时访问这个值,所以我想我们应该使用一些锁或内存屏障来保证安全,但我可以在 linux 驱动程序中找到很多代码谁没有,或者只是保护写入案例。 我们真的需要一个用于读取和写入的互斥量吗?
代码执行取决于CPU和系统。实际上,如果操作是 atomic,你可以在没有同步技术的情况下做到这一点。只要您对此不确定,最好使用同步对象。对于 int/dword 值,大多数时候人们在没有 sych 对象的情况下这样做。
阅读这篇文章 http://preshing.com/20130618/atomic-vs-non-atomic-operations/
还有同样的问题Are C++ Reads and Writes of an int Atomic?