
//extending Thread
public class SimpleThread extends Thread {
  	
	private int countDown = 20;
  	private static int threadCount = 0;
  	
  	public SimpleThread() {  	
    	super("" + ++threadCount); // Store the thread name
    	//start();
  	}
  	
  	public String toString() {
    	return "#" + getName() + ": " + countDown;
  	}
  	
  	public void run() {
    	while(true) {
      		System.out.println(this);
      		if(--countDown == 0) return;
    	}
  	}
  	
  	public static void main(String[] args) {
    	for(int i = 0; i < 3; i++)
      		(new SimpleThread()).start();
	}
	
}


/*
//using Runnable
public class SimpleThread implements Runnable{
	
	private int countDown = 10;
  	private static int threadCount = 0;
  	private int myCount;
  	
  	public SimpleThread() {  
  		++threadCount;	
  		myCount=threadCount;    	
  	}
  	
  	public String toString() {
    	return "#" + myCount + ": " + countDown;
  	}
  	
  	public void run() {
    	while(true) {
      		System.out.println(this);
      		if(--countDown == 0) return;
    	}
  	}
  	
  	public static void main(String[] args) {
    	for(int i = 0; i < 3; i++)
      		(new Thread(new SimpleThread())).start();
	}
}
*/
