////////////////////////////////////////////////////////////////////////////////
//  << j511e.java >>
//
//  スレッド(1):スレッドの作成(Threadクラスの子クラス内でrunメソッドを
//                 オーバーライド)
//  
//  Threadクラスを親クラスとする子クラスを定義する。
//  子クラス内でThreadクラスのrun()メソッドをオーバーライドする。
//
//  (1)スレッドの定義。
//  (2)スレッドの作成。
//  (3)スレッドの実行。
//  (4)mainメソッドの実行。
//
//  ●スレッドプログラムの書き方
//
//        class クラス名 extends Thread {
//          public static void main(String args[]) {
//            クラス名 th = new クラス名(); // スレッドの作成。
//            th.start(); // スレッドの実行。
//          }
//          public void run() {
//            処理の本体
//          }
//        }
//
//    ・ひとつのクラスファイル(j511e.class)が作成される。
//
////////////////////////////////////////////////////////////////////////////////

class j511e extends Thread {

  //(1)スレッドの定義。
  public void run() { // 処理の本体。
    for( int i=1; i<=16; i++ ) { 
      System.out.println("スレッド(" + i + ")");
    }
  }

  public static void main(String args[]) {

    j511e th = new j511e(); //(2)

    th.start(); //(3)

    for( int i=1; i<=16; i++ ) { 
      System.out.println("mainメソッド(" + i + ")"); //(4)
    }

  }

}
実行結果
% javac j511e.java
% java j511e
mainメソッド(1)
mainメソッド(2)
mainメソッド(3)
mainメソッド(4)
mainメソッド(5)
mainメソッド(6)
mainメソッド(7)
mainメソッド(8)
mainメソッド(9)
mainメソッド(10)
mainメソッド(11)
mainメソッド(12)
スレッド(1)
スレッド(2)
スレッド(3)
スレッド(4)
スレッド(5)
スレッド(6)
スレッド(7)
スレッド(8)
スレッド(9)
スレッド(10)
スレッド(11)
スレッド(12)
スレッド(13)
スレッド(14)
スレッド(15)
スレッド(16)
mainメソッド(13)
mainメソッド(14)
mainメソッド(15)
mainメソッド(16)