jdk 1.8 内存可见性_JDK 14中的常规,安全和确定性外部内存访问
jdk 1.8 內存可見性
在“ JDK 14 Rampdown:Build 27 ”一文中,我總結了JDK 14 Early Access Build #27中新增的許多針對JDK 14的功能。 已經存在另一種JDK 14 Early Access Build,并且此[ Build 28(2019/12/18) ]包含一項特別有趣的功能:增強JDK-8234049 [“ Memory Access API(Incubator)的實現”。 這是JEP 370 [“ 外部存儲器訪問API (Incubator)”的實現,其摘要為:“引入API以允許Java程序安全有效地訪問Java堆之外的外部存儲器?!?
JEP 370旨在實現一種提供“通用性”,“安全性”和“確定性”的“外部存儲器API”(在JEP中對每種方式進行了詳細描述)。 JEP還指出,此外部內存API旨在替代當前使用的方法( java.nio.ByteBuffer和sun.misc.Unsafe )。 JEP中討論了這兩個當前可用替代方案的缺點和局限性。
JEP指出,庫“訪問外部內存”是為了“避免垃圾回收所帶來的成本和不可預測性”,“在多個進程之間共享內存”以及“通過將文件映射到內存來對內存內容進行序列化和反序列化”。 它補充說:“ Java API不能為訪問外部內存提供令人滿意的解決方案?!?
JEP 370的“描述”部分介紹了外部存儲器訪問API的實現。 本節開始于:“外部存儲器訪問API引入了三個主要的抽象: MemorySegment , MemoryAddress和MemoryLayout ?!?然后,本節描述了這三個主要抽象:“ MemorySegment用于對具有給定空間和時間范圍的連續內存區域進行建模。 可以將MemoryAddress視為段內的偏移量。 最后, MemoryLayout是內存段內容的程序化描述?!?
在使用外部存儲器訪問的幾個詳細示例之后,JEP的“描述”部分指出:“外部存儲器訪問API最初將作為一個孵化模塊(名稱為jdk.incubator.foreign )以相同的名稱提供。 ”
OpenJDK郵件列表消息中提供了與JEP 370相關的其他背景詳細信息。 一個關鍵線程以消息“ RFR JDK-8234049:Memory Access API(Incubator)的實現 ”開頭。 此JEP的CSR [ JDK-8234050 :內存訪問API的實現(孵化器)]提供了其他有用的描述。 也可以在http://cr.openjdk.java.net/~mcimadamore/panama/memaccess_javadoc/jdk/incubator/foreign/package-summary.html上臨時獲得基于Javadoc的外部內存訪問API文檔。
JEP 370實現包含在JDK 14 Early Access Build#28中,可以試用。
翻譯自: https://www.javacodegeeks.com/2020/01/general-safe-and-deterministic-foreign-memory-access-in-jdk-14.html
jdk 1.8 內存可見性
總結
以上是生活随笔為你收集整理的jdk 1.8 内存可见性_JDK 14中的常规,安全和确定性外部内存访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易云音乐网页版登录入口(手机网易云音乐
- 下一篇: 电脑内存品牌都有哪些(电脑内存品牌排行榜