
// ThreadExample1
// Burton Rosenberg
// July 9, 1997

public class ThreadExample1 {

    public static void main(String [] args) {

        (new Thread(new A("Fi",2000))).start() ;
        (new Thread(new A("Fo",3000))).start() ;
        (new Thread(new A("Fe",5000))).start() ;
        try {
             Thread.sleep(3000) ;
        } catch (Exception e) { } 
        System.out.println("Main exits.") ;

    }

}

class A implements Runnable {

    String greeting ;
    int delayTime ;
    final static int COUNT = 10 ;

    A(String greeting, int delayTime) {
        this.greeting = greeting ;
        this.delayTime = delayTime ;
    }

    public void run() {
       for ( int i=0; i<COUNT; i++ ) {
	    System.out.println(greeting) ;
	    try {
		Thread.sleep(delayTime) ;
	    } catch (Exception e) { }
        }
        System.out.println("Run exits: no more " + greeting + ".") ;
    }
}


