実習 3: スレッドを調べる

この実習では、プロジェクトを構成するスレッドグループ、スレッド、スタックフレームを調べます。また、プログラムの実行に伴って変化する変数の値を追跡する方法についても学習します。
  1. 「デバッグ」->「スレッド/スタック」を選択します。
    「スレッド/スタック」ウィンドウが表示されます。

    Blink プロジェクトには 3 つのスレッドグループがあり、それぞれにアイコンが付いています。

    sun.applet.AppletViewer.main スレッドグループには 3 つのスレッド、Blink スレッドグループには 2 つのスレッドが含まれています。
  2. sun.applet.AppletViewer.main スレッドグループの下にある 1 つ目のスレッド "AWT-EventQueue-0" を見てください。

    以下のことがわかります。

    スレッドに付いているアイコンからも、スレッドの状態がわかります。アイコンとそれが示すスレッドの状態は、以下のとおりです。
    スレッドは中断 (一時停止) 中です。
    スレッドはブレークポイントで停止中です。
    スレッドの状態を特定できません。
    スレッドはゾンビ状態です。
    スレッドは実行中です。
    スレッドはスリープ中です。
    スレッドは条件付き変数で待機中です。

  3. スレッドクラスを構成している呼び出しスタックを見てください。
    呼び出しスタックには、呼び出されたけれども戻っていないメソッドがすべて含まれています。プログラムが停止した時に実行中であった Blink.paint が、呼び出しスタックの一番上にあります。プログラムが停止した位置がすぐわかるように、スタックフレームは強調表示されています。各スタックフレームには アイコンが付いています。
  4. アイコンの左にある「+」記号をクリックして、Blink.paint スタックフレームを開きます。
    Blink.paint 中の局所変数とその現在の値が表示されます。変数 word の値を確認してください。
  5. 編集デバッグツールバー上の「継続」ボタンをクリックします。
    プログラムはループに入り、2 回目にブレークポイントに到達した時に実行を停止します。「スレッド/スタック」ウィンドウの表示内容は更新され、word の値が変わります。この変数の値は、「Java WorkShop ってステキ!」中の空白文字で区切られる部分で順に入れ替わります。
  6. アイコンの左にある「+」記号をクリックして、this オブジェクトを展開します。
    このオブジェクト中のすべての変数が表示されます。peer など、入れ子になっているオブジェクトについて、同様にオブジェクトを展開して中の変数を確認することができます。
  7. this オブジェクトの左にある「-」記号をクリックします。
    展開されているオブジェクトが閉じられます。

次のレッスン:

実習 4: メソッドをステップ実行する