內存映射文件(根據規範)在很大程度上取決於操作系統的實際實現,並且一些這些未知方面已經在javadoc中進行了解釋。不過,我還有一些其他問題,不知道在哪裏尋求答案。java中的內存映射文件:太多的問題?
假設application A
將文件映射到內存從position=0
到size=10
。
我會假設操作系統需要一個連續的內存映射它?或者這是依賴於實現?
現在假設我們有一個application B
,其映射從position=0
到size=11
。 是前10個字節共享還是完全不同的映射?這涉及到連續記憶問題。
如果我們想爲IPC使用映射文件,我們需要知道數據如何反映在其他應用程序中,所以如果B
寫入內存,請問A
看到了嗎?
但是,當我閱讀規範,這取決於操作系統。這對於通用IPC來說很危險,因爲它破壞了可移植性嗎?
另外假設OS不支持它,所以B
寫入內存,A
看到的變化,如果我們這樣做會發生什麼:
B.write("something");
A.write("stuff");
A.read();
究竟會A
讀?
或換句話說:
如何管理文件指針?
它是如何工作的併發性,有跨應用程序鎖定?