多用戶空間進程可以同時訪問這個值,所以我想我們應該使用一些鎖或內存屏障東西安全的,但我能找到Linux驅動程序相當多的代碼誰不會,或者只是保護寫情況。 我們是否真的需要互斥讀寫和寫入大小寫?我需要一個互斥鎖來保護可以通過sysfs獲取/設置的int值嗎?
0
A
回答
0
這取決於CPU和被執行的代碼在系統上。其實如果操作原子你可以做到這一點沒有同步技術。只要你不確定這一點,最好使用同步對象。對於int/dword值,大多數情況下,人們在沒有sych對象的情況下執行此操作。
閱讀這篇文章 http://preshing.com/20130618/atomic-vs-non-atomic-operations/
+0
感謝您的解釋和您的鏈接:-) –
相關問題
- 1. 函數可以鎖定互斥鎖嗎?
- 2. 確實需要使用互斥鎖嗎?
- 3. 需要釋放互斥鎖?
- 4. 爲什麼lock_guard可以通過unique_lock獲取已經鎖定的互斥鎖?
- 5. 線程是否需要獲取互斥鎖的所有權來關閉互斥鎖的句柄
- 6. 多線程互斥鎖可以使用多個互斥鎖
- 7. 在這種情況下,我真的需要互斥鎖嗎?
- 8. 我可以使用來自threads :: shared模塊(如互斥鎖)的鎖嗎?
- 9. 獲取互斥鎖列表?
- 10. MSMQ中需要互斥嗎?
- 11. 調用ResetEvent()時,我需要互斥鎖嗎?
- 12. 如果我正確使用通道,我需要使用互斥鎖嗎?
- 13. 我需要一個靜態函數的互斥量嗎?
- 14. 我需要一個指針向量上的互斥量嗎?
- 15. 我可以使用互鎖操作更新多個值以避免鎖定臨界區/互斥量嗎?
- 16. 需要通過條件變量尋找互斥保護(原子)分配?
- 17. 需要幫助調試互斥死鎖
- 18. pthread_once_t變量是否需要互斥鎖?
- 19. 獲取對兩個互斥鎖的鎖定並避免死鎖
- 20. 可以在Qt 5.4中解鎖兩次互斥鎖嗎?
- 21. SDL互斥鎖可以鎖定兩次嗎?
- 22. 從單個工作線程更新全局變量:我需要互斥鎖嗎?
- 23. static_lock_guard靜態互斥鎖嗎?
- 24. 這是可怕的嗎?可複製的互斥體,以保護類成員
- 25. 互斥量保護宏
- 26. 我可以通過REST API獲取企業設置嗎?
- 27. 在這段代碼中真正需要互斥鎖嗎?
- 28. 鎖定多個互斥鎖
- 29. 通過名稱鎖定(互斥選擇)
- 30. 我需要保護我的API嗎?
使用你SHM? (共享內存段) – rak007
不是。我的情況是,例如,我有一個RW寄存器「REG」,並在司機我緩存它與「INT REG」的值,然後創建一個sysfs文件,讓我們說,「/sys/.../reg」。當用戶回聲int值到「/sys/.../reg」,此值將被寫入到REG,和緩存爲「int REG」;當用戶cat「/sys/.../reg」時,驅動程序會給用戶「int reg」。我的問題是,我是否需要添加一個互斥鎖來保護echo int和cat case的「int reg」? –
如果您在多進程/線程文件寫作,也許這篇文章可以幫助你:https://stackoverflow.com/questions/26565498/multiple-threads-writing-on-same-file – rak007