首页 文章 精选 留言 我的
优秀的个人博客,低调大师

微信关注我们

原文链接:https://my.oschina.net/HelloGitHub/blog/5197928

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

看看毕昇 JDK 团队如何解决 JVM 中 CMS 的 Crash

编者按:笔者遇到一个非常典型 JVM 架构相关问题,在 x86 正常运行的应用,在 aarch64 环境上低概率偶现 JVM 崩溃。这是一个典型的 JVM 内部 bug 引发的问题。通过分析最终定位到 CMS 代码存在 bug,导致 JVM 在弱内存模型的平台上 Crash。在分析过程中,涉及到 CMS 垃圾回收原理、内存屏障、对象头、以及 ParNew 并行回收算法中多个线程竞争处理的相关技术。笔者发现并修复了该问题,并推送到上游社区中。毕昇 JDK 发布的所有版本均解决了该问题,其他 JDK 在 jdk8u292、jdk11.0.9、jdk13 以后的版本修复该问题。 bug 描述 目标进程在 aarch64 平台上运行,使用的 GC 算法为 CMS(-XX:+UseConcMarkSweepGC),会概率性地发生 JVM crash,且问题发生的概率极低。我们在 aarch64 平台上使用 fuzz 测试,运行目标进程 50w 次只出现过一次 crash(连续运行了 3 天)。 JBS issue:https://bugs.openjdk.java.net/browse/JDK-...

聊会天,三次握手和四次挥手就被搞定了

PS:通俗一点的解释都会在引用块中 Nothing is true, Everything is permitted. 0. 什么是TCP TCP,全称Transmission Control Protocol,是一种面向连接、可靠的、基于字节流的单播协议。与我们常说的TCP/IP协议不同,TCP/IP是一个协议族,涉及到OSI模型中的网络层、应用层和应用层。而我们要聊的TCP就是在传输层的协议,现在应用的特别广泛的HTTP请求,就是基于TCP的。 1. 三次握手 所谓面向连接很好理解,就像我们要对远程服务器发出一个指令,首先我们需要登录上去。这个登录就是一个连接的过程。 在做数据交换之前,通信双方必须在彼此建立一条连接。也就是通信双方都维护了一份对方的信息,比如IP地址和端口号。说到建立连接,就不得不提到经典的三次握手和四次挥手。 1.1 为什么不两次握手 三次握手让通信双方都明确有一个连接正在建立,也为了确保客户端和服务器同时具有发送和接收的能力。而两次握手做不到这一点。我们现在从另外一个角度来看一下三次握手,那就是为什么要三次握手?我两次握手它不香吗?让我们用一段对话来模拟如果真...

相关文章

发表评论

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle

Oracle

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse

Eclipse

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。