c++中共享內存原理及實現


 

共享內存 (也叫內存映射文件) 主要是通過映射機制實現的 , Windows 下進程的地址空間在邏輯上是相互隔離的 , 但在物理上卻是重疊的 ; 所謂的重疊是指同一塊內存區域可能被多個進程同時使用 ,

當調用 CreateFileMapping 創建命名的內存映射文件對象時 , Windows 即在物理內存申請一塊指定大小的內存區域 , 返回文件映射對象的句柄 hMap ;

為了能夠訪問這塊內存區域必須調用 MapViewOfFile 函數 , 促使 Windows 將此內存空間映射到進程的地址空間中 ;

當在其他進程訪問這塊內存區域時 , 則必須使用 OpenFileMapping 函數取得對象句柄 hMap , 並調用 MapViewOfFile 函數得到此內存空間的一個映射 , 這樣系統就把同一塊內存區域映射到了不同進程的地址空間中 , 從而達到共享內存的目的.

https://blog.csdn.net/tojohnonly/article/details/70246965

https://www.cnblogs.com/me115/archive/2013/01/07/2848567.html

https://www.jianshu.com/p/56efa9d1500a

 

booK

https://www.amazon.cn/dp/B00ETOV2OQ/ref=sr_1_fkmr2_1?__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99&keywords=c%2B%2B+%E5%85%B1%E4%BA%AB%E5%86%85%E5%AD%98&qid=1564646975&s=books&sr=1-1-fkmr2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM