Recent Posts

JVM GC 复习(二) - GC算法、GC过程

第一篇说完了JVM运行时的内存分区。这一篇说说GC的一些基本知识。GC是JVM层面的垃圾回收机制,它不由程序员控制。我们可以问:GC是什么时候对什么东西做了什么事?下文会从这个思路去行文。

记一次线上CPU使用率飙升排查过程

前两天线上出了个CPU使用率飙升的问题。虽然最后是排查出来的,但排查时间太长了,思路还是有待提高。排查过程中用到非常多的JVM知识,一些是原来就会的,一些是边搞边学的(这就是慢的原因)。记录一下,下次遇到类似情况,整个时长应该可以缩短80%。

学习juc包 - FutureTask是如何实现的

future接口是的作用是跨线程拿到其他线程的处理结果。future接口是对一个即将拿到的结果的抽象,runnable接口是一个可以被执行的任务的抽象。今天看一下future接口的重要实现:futureTask,发现还是比较简单的。

学习juc包 - AQS

在分布式系统中,节点需要协作,同步。在多线程程序中,线程之间也需要协作,同步:一个线程进入某个方法之前可能需要等其他的某个线程执行完某个方法之后。我们使用锁来协调这些线程间同步。

学习juc包 - 线程池

java.util.concurrent包提供了多线程编程相关的工具接口,主要有:Executor、ExecutorService、Future等。