////////////////////////////////////////////////////////////////////////////////
//  << j511d.java >>
//
//  スレッド(1):スレッドの作成(匿名クラス)
//
//  スレッドを匿名クラスで記述する。
//  匿名クラスは、名前のない内部クラスである。
//
//  (1)スレッド1(Thread1)を匿名クラスで定義と作成。
//     Threadクラスを継承する。
//  (2)スレッド2(Thread2)を匿名クラスで定義。
//     Runnableインターフェースを実装する。
//  (3)スレッド2の作成。 
//  (4)スレッド1の実行。    
//  (5)スレッド2の実行。    
//  (6)mainメソッドの実行。    
//
// ●スレッドプログラムの書き方
//  
//      new 名前 {
//          変数定義 
//          メソッド定義
//        };
//
//  ・名前で親クラスの型を指定する。
//  ・3つのクラスファイルが生成される。
//      j511d.class, j511d$1.class, j511d$2.class
//
////////////////////////////////////////////////////////////////////////////////

class j511d {                                                
  public static void main(String args[]) {                   
                                                             
    //(1)               
    Thread th1 = new Thread() {                              
      public void run() { // 処理の本体。     
        for( int i=1; i<=10; i++ ) {                         
          System.out.println("スレッド1(" + i + ")");       
        }                                                    
      }                                                      
    };                                                       
                                                             
    //(2)               
    Runnable r = new Runnable() {                            
      public void run() { // 処理の本体。                
        for( int i=1; i<=10; i++ ) {                         
          System.out.println("スレッド2(" + i + ")");       
        }                                                    
      }                                                      
    };                                                       
                                                             
    Thread th2 = new Thread(r); //(3)         
                                                             
    th1.start(); //(4)
    th2.start(); //(5)

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

  }                                                          

}                                                            
実行結果
% javac j511d.java
% java j511d
mainメソッド(1)
mainメソッド(2)
mainメソッド(3)
mainメソッド(4)
mainメソッド(5)
mainメソッド(6)
mainメソッド(7)
mainメソッド(8)
mainメソッド(9)
mainメソッド(10)
スレッド1(1)
スレッド1(2)
スレッド1(3)
スレッド1(4)
スレッド1(5)
スレッド1(6)
スレッド1(7)
スレッド1(8)
スレッド2(1)
スレッド2(2)
スレッド2(3)
スレッド2(4)
スレッド2(5)
スレッド2(6)
スレッド2(7)
スレッド2(8)
スレッド2(9)
スレッド2(10)
スレッド1(9)
スレッド1(10)