/**
 * 
 */
package thread3;

import java.util.concurrent.TimeUnit;

/**
 * Thread der Zahlen ausgibt und zwischendurch immer mal wieder schlaeft.
 * 
 * @author  Ralf Kunze (rkunze@uos.de), Institut fuer Informatik, Universitaet Osnabrueck
 * @date 02.05.2007
 */
public class NumberWriter extends Thread{
	
	private boolean wasInterrupted = false;
	
	public NumberWriter(String name) {
		setName(name);
	}
	
	public void run() {
		// die Schleife laeuft bis entweder
		//		i >= 100 ist
		//		der Thread die Meldung interrupted() bekommen hat
		//			waehrend der Thread schlaeft (=> Exception)
		//			waehrend der Thread arbeitet
		for(int i = 0; i<100 && !wasInterrupted && !this.isInterrupted(); i++) {
			System.out.println(getName()+ ": " + i);
			
			try {
				sleep(1000);
//				TimeUnit.SECONDS.sleep(1);
//				TimeUnit.MILLISECONDS.sleep(1000);
//				TimeUnit.MICROSECONDS.sleep(1000000);
				
			} catch (InterruptedException e) {
				System.err.println("Ich wurde unterbrochen");
				System.err.println("Mein Interruptstatus ist jetzt " + this.isInterrupted());
				wasInterrupted = true;
				e.printStackTrace();
			}
		}
	}
}
