2022年2月7日
摘要:
本文的重点是把openJDK中多种主流垃圾回收器拉到一起,并对他们的特征、关注点、优劣势做对比分析,以期能在生产时间中根据业务场景选择合适的垃圾回收器。由于本文并非介绍各种垃圾回收器的内部实现细节,所以对垃圾回收器的工作过程只做整体描述。 openJDK中主流的垃圾回收器 截止到JDK12,open
阅读全文
posted @ 2022-02-07 20:53
J.M.Liu
阅读(1154)
推荐(0)
2019年10月12日
摘要:
为maven的编译、运行指定不同的jdk,有两种方式 参考: "Compiling Sources Using A Different JDK" 1. 最好的就是用Toolchainstool 插件,这个插件可以为包括compiler在内的其他诸多插件制定jdk版本,以及其他工具的版本(如果这些插件
阅读全文
posted @ 2019-10-12 22:51
J.M.Liu
阅读(270)
推荐(0)
2019年4月19日
摘要:
对于maven项目来说,目录结构是固定的,也就是像这样: Gradle也是一样的,他也有一个约定的目录结构,格式和maven的结构一样。但不同的是,gradle的目录结构是可以改的,官网中叫做Changing the project layout。怎么改,或者说怎么自定义?这就要用到SourceSe
阅读全文
posted @ 2019-04-19 15:00
J.M.Liu
阅读(5264)
推荐(1)
2019年4月12日
摘要:
CyclicBarrier是java推出的一个并发编程工具,它用在多个线程之间协同工作。线程约定到达某个点,到达这个点之后的线程都停下来,直到最后一个线程也到达了这个点之后,所有的线程才会得到释放。常用的场景是:多个worker线程,每个线程都在循环地做一部分工作,并在最后用cyclicBarrie
阅读全文
posted @ 2019-04-12 17:41
J.M.Liu
阅读(6911)
推荐(1)
2019年1月27日
摘要:
首先可以用jstack -l pid >sample.dump把java进程的运行栈dump出来。 还可以用grep java.lang.Thread.State sample.dump | awk '{print $2}' | sort -n | uniq -c 来看看进程中都有哪些线程状态。 首
阅读全文
posted @ 2019-01-27 19:14
J.M.Liu
阅读(4413)
推荐(0)
摘要:
java1.8中的ConcurrentHashMap做了非常大的改动,整个数据结构都发生了变化,已经不存在segment了。所以要好好重新查看下源码。这篇博客是逐步更行的,看一点写一点。 首先看一个很重要的参数sizeCtl,这是一个volatile变量,从名字就可以看出,这是一个大小控制参数。这个
阅读全文
posted @ 2019-01-27 18:48
J.M.Liu
阅读(327)
推荐(0)
2019年1月25日
摘要:
前置知识:你必须知道grub的启动过程以及bios和uefi的相关基础知识,可以参考:《Unified Extensible Firmware Interface Wikipedia》、《linux启动过程简介》 先说说三个变量是干嘛的: cmdpath 当前被加载的"core.img"(bios的
阅读全文
posted @ 2019-01-25 10:40
J.M.Liu
阅读(12935)
推荐(0)
2019年1月16日
摘要:
1.容器其实不是什么新技术,说白了就是namespace对资源进行隔离,再加UFS实现分层镜像,以及cgroup实现资源限制。这些技术,都是linux中已有的技术,而且有些技术很早之前就有了。 2.上面说了,容器就是用了隔离+分层+限制技术,所以和虚拟机是完全不同的东西,虚拟机那是真真正正的一个操作
阅读全文
posted @ 2019-01-16 22:29
J.M.Liu
阅读(479)
推荐(0)
摘要:
1 docker run run是最常用的命令,他是docker creat和docker start命令的组合,创建容器并启动它。run的参数比较难理解的是-i 和-t 以及-d,分别说说这三个。 -i -i 参数是keep STDIN open even if not attached,意思就是
阅读全文
posted @ 2019-01-16 17:19
J.M.Liu
阅读(16199)
推荐(2)
2019年1月9日
摘要:
会话外操作: tmux new -s <name-of-my-session> 在会话外创建一个新的会话 tmux ls 在会话外获取会话列表 tmux a(attach) -t <name-of-my-session> 在会话外进入会话,不带名字进入第一个会话 tmux kill-session
阅读全文
posted @ 2019-01-09 17:17
J.M.Liu
阅读(7872)
推荐(1)