public void run(){
        while(null != waitingCars){
            if(waitingCars.size() != 0){
                CarPlace2 carPlace = getFreeCarPlace();
                if(carPlace != null){
                    Car2 currCar = null;
                    try {
                        waitingCarsSemaphore.acquire();
                        currCar = waitingCars.get(0);
                        System.out.println("handle car with time "+currCar.getWaitingTime());
                        waitingCars.remove(0);
                        System.out.println("delete from queue car with time "+currCar.getWaitingTime());
                    } catch (InterruptedException ex) {
                        Logger.getLogger(CarPark2.class.getName()).log(Level.SEVERE, null, ex);
                    }finally{
                        waitingCarsSemaphore.release();
                    } 
                    if(null != currCar)
                        currCar.setCarPlace(carPlace);
                    
                }           
                
            }
        }
    }