/* basic/MyThread.java */ package basic; public class MyThread0 { public static void main (String[] args) { MyThread1 myTh1 = new MyThread1(); myTh1.start(); Thread myTh2 = new Thread(new MyThread2()); myTh2.start(); final long ms = 500; while (true) { System.out.println("MyThread 0"); try { Thread.sleep(ms); } catch (InterruptedException e) {} } } }
/* basic/MyThread1.java */ package basic; class MyThread1 extends Thread { final long ms = 1000; public void run() { while (true) { System.out.println("MyThread . 1"); try { sleep(ms); } catch (InterruptedException e) {} } } }
/* basic/MyThread2.java */ package basic; class MyThread2 implements Runnable { long ms = 2000; public void run() { while (true) { System.out.println("MyThread . . 2"); try { Thread.sleep(ms); } catch (InterruptedException e) {} } } }コンパイルと実行は次のようになる.
% javac basic/MyThread0.java % java basic.MyThread0 MyThread 0 MyThread . 1 MyThread . . 2 MyThread 0 MyThread 0 MyThread . 1 MyThread 0 MyThread 0 MyThread . . 2 MyThread . 1 MyThread 0 MyThread 0 MyThread . 1 MyThread 0 MyThread . . 2 MyThread . 1 MyThread 0 MyThread 0 MyThread . 1 MyThread 0 MyThread 0 MyThread . . 2 MyThread . 1 MyThread 0 MyThread 0 MyThread . 1 MyThread 0 MyThread 0