常用的 JDK 自带命令行工具

heap

这里可以找得到这些工具的列表,虽然官网上免责声明为 “The tools described in this section are unsupported and experimental in nature and should be used with that in mind. They might not be available in future JDK versions.”,但实际上这些工具还是非常有用的,尤其可以站在 JVM 的角度来定位问题。我在此简单罗列一些常用的工具和命令,以及相应的执行结果示例。如果你经常和 JVM 打交道,最好对这些工具的常用命令熟记。

 

jst

[……]阅读全文

Java 多线程发展简史

image 这篇文章,大部分内容,是周五我做的一个关于如何进行 Java 多线程编程的 Knowledge Sharing 的一个整理,我希望能对 Java 从第一个版本开始,在多线程编程方面的大事件和发展脉络有一个描述,并且提及一些在多线程编程方面常见的问题。对于 Java 程序员来说,如果从历史的角度去了解一门语言一个特性的演进,或许能有不同收获。

 

引言

首先问这样一个问题,如果提到 Java 多线程编程,你会想到什么?

 

  • volatile、synchronized 关键字?
  • 竞争和同步?
  • 锁机制?
  • 线程安全问题?
  • 线程池和队列?

好吧,请原谅我在这里卖的关

[……]阅读全文

看 JDK 源码,解几个疑问

java 1、Java 定时器原理是怎么样的?

解包 jdk_sec-1_5_0-src-jrl,在/j2se/src/share/classes/java/util 中找到 Timer 类。

private TaskQueue queue = new TaskQueue();
private TimerThread thread = new TimerThread(queue);

我找到了一个 Timer 的任务队列,找到了一个实际运行的线程类。

再来看看还有什么:

    private void mainLoop() {
        while (true) {
            try {

[……]阅读全文

back to top