public void run() {
		long delay;
		long start;
		int random;
		for (int i = 0; i < laneAry.size(); i++)
		{
			laneAry.get(i).start();
		}
		for (int i = 0; i < this.val.customersnum; i++) {
			start = System.currentTimeMillis();
			random = this.generator.nextInt(this.val.cartsizemax) + 1;
			delay = random * 20;
			while (start + delay > System.currentTimeMillis()) {
			this.setCustomersprocessedcount(this.getLanesProccessedCount());	
			}
			addCustomer(i);
			System.out.println("Customer: " + i);
		}
		boolean allfinished = false;
		while (!allfinished)
		{
			int count = this.val.lanenum;
			for (int j = this.val.lanenum - 1; j >= 0; j--)
			{
				this.setCustomersprocessedcount(this.getLanesProccessedCount());
				if (laneAry.get(j).QueueEmpty())
				{
					count--;
				}
			}
			if (count == 0)
				allfinished = true;
		}
		long time = 0;
		for (int i = 0; i < laneAry.size(); i++) {
			time += laneAry.get(i).getTotallanetime();
			laneAry.get(i).setStop(true);
		}
		this.time = time;
		
		return;
	}