package traffic;

class Movement implements Runnable {
    
    int vehicleNumber;
    int vehicleQuantity;
    double vehicleWait;
    int wait;
    double startTime;
    double endTime;
    double timeInterval;
    double vehicleRide[] = new double[40];
    Thread ride;

  Movement(){
    vehicleNumber = 0;
    vehicleWait = 0;
    wait = 2000;
    startTime = 0;
    endTime = 0;
    for (int k = 0; k < 40; k++)
       vehicleRide[k] = 0;
    vehicleQuantity = 0;
  }

  public void run() { 
  while (true) {  
    endTime= System.currentTimeMillis();
    timeInterval=endTime-startTime;
    if (timeInterval > 50) 
      vehicleRide[vehicleQuantity]= ((double)(vehicleNumber)/timeInterval)*1000; 
    vehicleQuantity=(vehicleQuantity+1)%40;

    try {
      Thread.sleep(wait);
    } catch (InterruptedException e) {
      break;
    }
  }
  }
  public void start() {
    ride = new Thread(this);
    ride.start();
  }
  public void stop() {
    ride.stop();
  }
}