学习JVM时看到书里讲到自己编译OpenJDK。记录一下过程 Mac系统版本:High Sierra 10.13.6 源码版本:jdk8u-dev 一、准备源码 我是从官网下载网站的,openJDK源码是用mercurial进行管理的,所以首先使用homebrew安装 ...
CAS简介 CAS即Compare and Swap的缩写,即比较并交换,它是一种实现乐观锁的技术.在CAS中包含三个操作数: V: 需要读写的内存位置,从java角度你可以把它当成一个变量 A: 预期值,也就是要进行比较的值 B: 拟写入的新值 当且仅当V的值等于A时,CAS才会通过原子方式用新值B来更新V的值,否则不会执行任何操作.无论位置V的值是否等于A,最终都会返回V原有的值.换句话说: ...
2020-08-03 16:49 0 477 推荐指数:
学习JVM时看到书里讲到自己编译OpenJDK。记录一下过程 Mac系统版本:High Sierra 10.13.6 源码版本:jdk8u-dev 一、准备源码 我是从官网下载网站的,openJDK源码是用mercurial进行管理的,所以首先使用homebrew安装 ...
一、Java概念 1.1 Java的历史 Java(一种咖啡名)是太阳微系统(Sun Microsystems)公司于1995年开始开发的。 在印度尼西亚,有一个岛屿叫做爪哇岛,英文名叫java, ...
想要深入了解JVM,就必须了解其实现机制。了解JVM实现的最好方法便是自己动手编译JDK。好了,让我们开始吧! 1. 准备工作 获取OpenJDK源码 本次编译选择的是OpenJDK7u,官方源码包:https://jdk7.java.net ...
一、前言 前一阵子比较好奇,想看到底层(虚拟机、汇编)怎么实现的java 并发那块。 volatile是在汇编里加了lock前缀,因为volatile可以通过查看JIT编译器的汇编代码来看。 但是原子类,本来在jvm中就是汇编实现的,反而没法看。如果能实际跟踪一下断点,应该也算实际验证 ...
前言 什么是 CAS Java 中的 CAS JVM 中的 CAS 前言 在上一篇文章中,我们完成了源码的编译和调试环境的搭建。 鉴于 CAS 的实现原理比较简单, 然而很多人对它不够了解,所以本篇将从 CAS 入手,首先介绍 ...
Microsoft Windows XP [版本 5.1.2600] 显示证书库中的证书使用如下命令: keytool -list - ...
构建编译环境 起 在读本书时,为了更好的理解书上的源码,便开始了此段艰难的环境编译之路。 本文默认环境是Linux的Ubuntu 16.04 LTS,openJdk版本是14,书上给的网址直接下网速很坑,推荐在git上的地址下载 JDK14u链接 1. 安装基础环境 首先需安装GCC ...
默认情况下,我们使用的都是 jre 版本的 openjdk,当容器启动卡住不动的时候,看不出来任何问题。 此时如果能 dump 就能知道线程在干啥,也能找到一些大概的问题。 此时 jre 版本的镜像就不够用了。 切换 jre 为 jdk 版本 只切换为 jdk 还不够,还会遇到 ...