// class implementing a consumer

class Consumer extends Thread {
  Buffer buf;    // reference on the buffer
  int elem;      // element removed

  // constructor
  Consumer(String name, Buffer buf) {
    super(name);
    this.buf = buf;
  }

  // behavior of the consumer
  public void run() {
    for(;;) {
      elem = buf.removeElement(getName());
      try {
	sleep((int)Math.random()*100);
      } catch(InterruptedException x) {
	System.out.println(x);
      }
    }
  }
}
