练习3:检查线程

您将在本练习中查看组成Blink项目的线程组、线程和栈帧。您还将学习如何在程序执行的过程中 跟踪变量值的变化。
  1. 选择调试->线程/堆栈
    将显示“Java Development Environment线程/堆栈”窗口。

    Blink项目共包含三个线程组,每个线程组都带有一个小图形:

    sun.applet.AppletViewer.main线程组共包括三个线程;而Blink文件线程组则包括两个线程。
  2. 请看sun.applet.AppletViewer.main线程组中的第一个线程"AWT-EventQueue-0"

    您将看到下列内容:

    线程旁边的小图形可以作为判断线程状态的另一个线索。您可能见到的小图形包括:
    线程处于暂停状态。
    线程停在一个断点上。
    无法确定线程的状态。
    线程处于僵化状态。
    线程处于运行状态。
    线程处于睡眠状态。
    线程正等待一个条件变量。

  3. 请看组成线程类的调用栈。
    调用栈中包括所有已经调用,但尚未返回的方法。程序停止时正在执行的Blink.paint 位于堆栈的最上面。栈帧被高亮显示,以便可以很容易地指出程序停止的地方。 每个栈帧都带有一个小图形。
  4. 单击小图形旁边的 +,打开Blink.paint栈帧。
    Java Development Environment将显示Blink.paint中的局部变量及其当前值。请看变量word。 再看word变量的值。
  5. 单击“编辑/调试”工具栏中的“继续”按钮。
    程序将继续运行这个循环,并在第二次到达断点时停下来。“线程/堆栈”显示会被更新, word变量的值也随之更改。其值在“Java Development Environment is really cool :-)”中循环。
  6. 单击小图形旁边的 +,打开this对象。
    Java Development Environment将该对象展开,以显示项目内含的所有变量。您可以对嵌入对象(例如,peer) 重复这个动作。
  7. 单击this对象左边的 - 。
    Java Development Environment又把该对象折叠起来。

下一课:

练习4:单步执行一个方法