package producerconsumer2;

/**
 * Many Producer, many Consumer, geloest mit anonymen Klassen.
 * Da hier mehrere Producer und mehrere Consumer verwendet werden, 
 * ist diese vorgehensweise nicht so zu empfehlen, sie dient
 * lediglich zu Demonstrationszwecken.
 * 
 * @author Ralf Kunze (rkunze@uos.de), Institut fuer Informatik, Universitaet
 *         Osnabrueck
 * @date 06.05.2007
 */
public class ProdConDemo {

	public static void main(String args[]) {
		final Depot depot = new Depot();
		
		new Thread(new Runnable() {
			public void run() {
				for (int i = 0; i < 1000; i++) {
				      depot.put(i);
				}
			}
		}).start();
		
		Thread t = new Thread(new Runnable() {
			public void run() {
				for (int i = 1000; i < 2000; i++) {
				      depot.put(i);
				}
			}
		});
		t.setName("Producer1");
		t.start();

		new Thread(new Runnable() {
			public void run() {
				for (int i = 2000; i < 3000; i++) {
				      depot.put(i);
				}
			}
		}).start();

		
		new Thread(new Runnable() {
			public void run() {
				for (int i = 0; i < 1500; i++)
				      depot.get();
			}
		}).start();
		
		new Thread(new Runnable() {
			public void run() {
				for (int i = 1500; i < 3000; i++)
				      depot.get();
			}
		}).start();
	}
}
