我確實有一個* .so庫,它使用dlopen從系統庫中獲取一些信息。庫可以被多個應用程序同時使用。 也許這是一個愚蠢的問題,但我應該在圖書館做dlopen之前涌入圖書館嗎?我沒有在任何地方找到直接的答案。我應該在dlopen之前鎖定嗎?
0
A
回答
1
與評論中所述內容類似,除非您訪問可能會改變您的共享資源,否則不需要信號燈(羣)。 (IE。訪問共享內存並需要確保數據的併發性)。該方式動態加載... dlopen的()...作品
的連接因作品,搬遷和修改GOT/PLT方式中的內存空間完成(進程調用dlopen)而不是共享對象映射的地方。
具有共享對象以只讀你永遠不必擔心他們在你突然改變的sooo不需要羊羣:)內存爲!
注意:因爲你有一個共享對象鏈接到其他共享對象......初始共享對象的GOT需要更新/ mod,並且使用dlopen()加載庫的重定位...但是存儲在進程唯一內存空間的ar/w段中,而不是共享對象的ar/w段中。
相關問題
- 1. 我應該在C#中讀取文件之前鎖定文件嗎?
- 2. 我應該鎖定'事件'嗎?
- 3. android複製保護向前鎖定 - 我應該不打擾嗎?
- 4. 我可以在Rails中鎖定表嗎? (我應該嗎?)
- 5. 使用dlopen時,我應該鏈接到我打開的庫嗎?
- 6. 我應該使用喚醒鎖嗎?
- 7. 我應該在使用reloadData之前清除表視圖嗎?
- 8. 在學習JavaFx之前,我應該學習Swing嗎?
- 9. 我應該在每次查詢之前ping mysql服務器嗎?
- 10. php/mysqli:我應該在free_result返回之前嗎?
- 11. 在插入到MongoDB之前,我應該解析JSON數據嗎?
- 12. 在使用之前,我應該檢查boost :: shared_ptr或std :: shared_ptr嗎?
- 13. 我應該在編譯之前編寫測試嗎?
- 14. 在學習Ajax之前,我應該學習Xml和Javascript嗎?
- 15. 在更改主題之前,我應該升級Magento嗎?
- 16. 我應該在散列之前對數據進行編碼嗎?
- 17. 我應該在string.Replace()之前使用string.Contains()嗎?
- 18. 我們應該在WPF之前學習Window Form嗎?
- 19. 在爲它分配新值之前,我應該釋放NSString嗎?
- 20. 我應該在更新之前提交查詢事務嗎?
- 21. 在創建通知之前,我應該叫醒WakeLock嗎?
- 22. 我應該在返回對象之前發送retain或autorelease嗎?
- 23. 我應該在json.dumps(...)之後編碼嗎?
- 24. 我應該regexp.test之前,我string.replace?
- 25. Git(LFS):什麼是鎖定支持?我應該啓用它嗎?
- 26. 我應該使用MySQL的自定義'鎖'表嗎?
- 27. 關閉主機之前,我應該關閉lxc容器嗎?
- 28. 在應用程序退出之前,socketpair端應該關閉嗎?
- 29. 在Windows鎖定之前執行任務
- 30. 我應該在MainActivity中定義SharedPreferences嗎?
號的每個程序都使用自己的內存堆棧時,它加載庫。鎖定僅適用於*共享資源*,如果多個程序使用相同的共享庫,則這是不存在的。 –
如果沒有人修改文件,則不需要對文件進行植絨。 –
我更擔心在文件系統上同時訪問文件(庫)。 – incogn1to