public class Threads {
	
	public static void main(String[] args) {
		Kontainer puffer = new Kontainer();
		Generator gen = new Generator(puffer);
		Verbraucher verb = new Verbraucher(puffer);
		
		gen.start();
		verb.start();
	}
}

class Generator extends Thread {
	
	private Kontainer kont;
	
	public Generator(Kontainer kont) {
		this.kont = kont;
	}
	
	public void run() {
		int q = 0;
		while(true) {
			for(int i = 0; i < kont.gibAnzahl(); i++){
				kont.setzeWert(i, q);
			}
			q++;
			q = q % 1000000000;
		}
	}
}

class Verbraucher extends Thread {
	
	private Kontainer kont;
	
	public Verbraucher(Kontainer kont) {
		this.kont = kont;
	}
	
	public void run() {
		while(true) {
			for(int i = 0; i < kont.gibAnzahl(); i++){
				System.out.println(kont.leseWert(i));
//				try {
//					Thread.sleep((long) 500.0);
//				} catch (InterruptedException e) {
//					e.printStackTrace();
//				}
			}
		}
	}
}

class Kontainer {
	
	private int[] werte = new int[100];
	
	public Kontainer() {
		for(int i = 0; i < werte.length; i++) {
			werte[i] = 0;
		}
	}
	
	public void setzeWert(int index, int wert) {
		this.werte[index] = wert;
	}
	
	public int leseWert(int index) {
		return this.werte[index];
	}
	
	public int gibAnzahl() {
		return this.werte.length;
	}
}