package sleepingbarber;

import java.util.Timer;
import java.util.concurrent.Semaphore;

/**
 * Hauptprogramm.
 * 
 * @author  Ralf Kunze (rkunze@uos.de), Institut fuer Informatik, Universitaet Osnabrueck
 * @date 14.05.2007
 */
public class RealWorld {

	public static void main(String[] args) {
		// Semaphore und Barber anlegen
		Semaphore plaetze = new Semaphore(5);
		Semaphore barberAvailable = new Semaphore(1);
		SleepingBarber b1 = new SleepingBarber("Barber");
		b1.start();

		final int CUSTOMERS = 10;
		
		// Kunden anlegen und starten
		Customer[] customers = new Customer[CUSTOMERS];
		for(int i = 0; i<customers.length;i++) {
			customers[i] = new Customer(plaetze, barberAvailable, b1, "Kunde"+i);
			customers[i].start();
		}

		// InfoThread starten
		Timer timer = new Timer();
		timer.schedule(new CustomerPrintTask(customers),2000,2000);
	}

}