【大咖分享】AI 大模型时代,架构师有哪些机遇和挑战? 了解详情
写点什么

Oracle 确定 Unsafe 类处理策略

  • 2015-08-13
  • 本文字数:1053 字

    阅读完需:约 3 分钟

近来, sun.misc.Unsafe 这一 Java 库类成了一个备受争议的话题。上周,Oracle 首席Java 架构师和Jigsaw 项目经理Mark Reinhold在博文中就该类的未来阐述了一些观点。

Reinhold 将 Oracle 的处理策略简要描述为:

  • 如果它 [编者注:任何特定的 sun.misc.Unsafe 特性] 在 JDK 8 中有一个受支持的替代选项,那么我们将在 JDK 9 中将其封装;
  • 如果它在 JDK 8 中没有一个受支持的替代选项,那么我们将不会在 JDK 9 中将其封装,以便外部代码仍然可以使用它;而且,
  • 如果它在 JDK 9 中有一个受支持的替代选项,那么我们将在 JDK 9 中弃用它,并且会在 JDK 10 中将其封装,甚或移除。

OpenJDK 提案 JEP 260 已经被授权“封装大部分内部 API”,它的创建反映了 Oracle 的策略。Jigsaw 项目已经严重拖期,Oracle 试图用它模块化 JDK,并提供 Java 模块化开发功能。

sun.misc.Unsafe 是一个不受支持的 Java 类,它提供了底层“非安全”(按 Java 沙箱标准)操作的基本实现。传统上,自 Java 创建以来,Java 创建者 Sun Microsystems 公司就不赞成使用“sun”包

Unsafe 并不是一个正统的 Java 类,它来自不受支持的 sun.misc 包。关于这个讨论中的问题,现在需要关注的是,它将来仅限于通过 Jigsaw 项目的 JDK 模块来访问。

Unsafe 包含以下几类操作:

  • 线程锁定
  • 线程 parking 和 unparking
  • volatile 访问
  • native 比较和交换
  • 直接内存访问和分配
  • 声明式异常

由于这些方法在很大程度上是 Java 中唯一可以访问这类特性的方法,所以该库广泛应用于 JDK 及许多第三方库中。

已经有一个名为 Variable Handles 的方案,可以提供部分内存访问和 volatile 访问特性,但目前为止,Unsafe 的其它功能仍有待晋升为一等公民。

高性能社区似乎很高兴看到事情确定了下来。

Hazelcast 的 Christoph Engelbert 告诉 InfoQ:

对于新策略所涉及的、关于 sun.misc.Unsafe 及其它私有 API 的暴露、移除或弃用,我非常赞赏。对于由那些广泛应用的私有 API 所造成的不幸状况,Hazelcast 和我本人,我们都认为这可能是最好的解决方案。

Ben Cotton 是 Mechanical Sympathy 低延迟社区论坛的一名活跃分子,他告诉 InfoQ:

对于编写本地“大数据”实现,如今的 Java 应用程序开发人员需要真正的补救措施。当前,Java 虽然支持 NIO 库,但却没有提供一个比 2gb(一次调用)更好的 API 用于本地内存分配。Java 9 用一个受支持的 API 替换了 sun.misc.Unsafe,而且该 API 还有助于大数据应用程序开发。对此,我非常高兴。

InfoQ 曾试图联系 Oracle 进行确认,但他们拒绝置评。

查看英文原文: Oracle Carving Strategy for Unsafe Library

2015-08-13 19:472634
用户头像

发布了 1008 篇内容, 共 360.3 次阅读, 收获喜欢 334 次。

关注

评论

发布
暂无评论
发现更多内容

TDSQL-A技术架构演进及创新实践

腾讯云数据库

tdsql 国产数据库

☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析

洛神灬殇

并发编程 AQS CyclicBarrier Java 线程 1月日更

鸿蒙轻内核M核源码分析:LibC实现之Musl LibC

华为云开发者联盟

鸿蒙 内存分配 LibC Musl LibC Musl

智联生活行业加速器热门FAQ:物联网企业该如何与华为云合作?

华为云开发者联盟

物联网 华为云 智联生活 智联生活行业加速器 云市场

企业可以定级吗?可以自己确定等保等级吗?

行云管家

网络安全 等保 等级保护 等保2.0

Python监督学习之分类算法的概述

王小王-123

Python 人工智能 机器学习 分类算法

深入浅出Apache Pulsar(4)Pulsar Functions

云智慧AIOps社区

Apache kafka 云原生 pulsar 消息中间件

腾“云”架“雾”,3DCAT带你进入元宇宙

3DCAT实时渲染

云渲染 元宇宙

SparkSQL高并发:读取存储数据库

华为云开发者联盟

数据库 高并发 Sparksql 存储 读取

起个变量名,好的代码应该是这样的

蜜糖的代码注释

Java 互联网 开发 后端技术

《火绒安全2021终端安全情报年鉴》发布 拦截弹窗广告45亿次

火绒安全

网络安全 终端工具 终端安全 勒索攻击 弹窗

2022年Flutter真的会一统大前端吗?

坚果

Flutter 小菜 1月月更

从重大漏洞应急看云原生架构下的安全建设与安全运营(上)

腾讯安全云鼎实验室

云原生 安全漏洞 安全服务

Redis:我是如何与客户端进行通信的

华为云开发者联盟

redis 通信 协议 指令 客户端

服务网格的落地探索和实践

ZEGO即构

微服务 istio 服务网格 音视频开发

数智融合加速驱动企业商业创新

用友BIP

大数据 数据中台

在线XML转JSON工具

入门小站

工具

Netty核心概念之ChannelHandler&Pipeline&ChannelHandlerContext

CRMEB

字节跳动数据湖技术选型的思考与落地实践

字节跳动数据平台

数据湖 数据流 Apache Hudi

SAP ABAP 业务开关和 SAP 电商云的 Feature Level

Jerry Wang

angular abap 1月月更 增强包 增强技术

迭代发布后,为什么还需要开迭代回顾会议?

LigaAI

团队管理 敏捷开发

恒源云(GPUSHARE)_Teacher Forcing训练小技巧来啦~

恒源云

深度学习 语音识别

8节深度学习干货课程,帮你轻松点亮AI项目开发技能

OpenI启智社区

人工智能 深度学习

为数据库性能调优插上 AI 的翅膀 | 调优测试框架 Matrix 团队访谈

PingCAP

国内公有云首个支持保留消息功能!百度智能云天工物联网核心套件技术再升级

百度大脑

人工智能

20000字详解大厂实时数仓建设 | 社区征文

五分钟学大数据

数据仓库 实时数仓 1月月更 新春征文

基于Flink CDC打通数据实时入湖

五分钟学大数据

flink 1月月更

中科柏诚:积极践行为中小企业服务宗旨,同乡村振兴有效衔接

联营汇聚

第四节:SpringBoot中web模版数据渲染展示

入门小站

springboot

面试官:知道 Flutter 生命周期?下周来入职!

百瓶技术

前端 生命周期 客户端 Flutter 小菜

【监控体系】全面系统的Zabbix讲解 | 含源码&监控类型整理

云智慧AIOps社区

运维 监控 zabbix 智能运维 监控工具

  • 扫码加入 InfoQ 开发者交流群
Oracle确定Unsafe类处理策略_Java_Victor Grazi_InfoQ精选文章