@Override
	public void run() {
		open = true;
		System.err.println("Die Kasse mit Id: " + cashpointId + " soll geöffnet werden!");
		try {
			Thread.sleep(6000);
		} catch (InterruptedException e1) {
			e1.printStackTrace();
		}
		System.err.println("Die Kasse mit Id: " + cashpointId + " wurde geöffnet!");
		
			while (!empty) {
				
				synchronized (waitingQueue) {

					while (waitingQueue.size() < 1 && removedOne) {
						try {
							waitingQueue.wait();
						} catch (InterruptedException e) {
							e.printStackTrace();
						}
					}
					if (waitingQueue.size() >= 1) {
						Kunde kunde = waitingQueue.get(0);
						waitingQueue.remove(0);
						abgKunden ++;
						writeToBalance(kunde);
						removedOne = true;
						System.out.println("Der Kunde Nr: " + kunde.getNr()
								+ " wird von Kasse mit Id: " + cashpointId + " abgearbeitet!");
						System.out.println(waitingQueue.size()
								+ " Kunde(n) stehen in der Schlange der Kasse mit Id: " + cashpointId + " !");
					} else {
						empty = true;
					}
				}
				if (removedOne) {
					try {
						Thread.sleep(Math.round(6000 + Math.random()
								* (10000 - 6000)));
						removedOne = false;
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}
			open = false;
			System.err.println("Die Kasse mit Id: " + cashpointId + " wurde geschlossen!");
		}