/** Loop principal Gera pedidos aleat�rios para fornecedores aleat�rios */
  public void run() {
    Pedido pedido = new Pedido();
    for (; ; ) {
      try {
        Thread.sleep(Projeto2.randInt(500));
      } catch (InterruptedException e) {
        Projeto2.setVerbose(true);
        Projeto2.debug("interrompido enquanto dormia");
        return;
      }

      for (Cana g : Cana.values()) {
        pedido.set(g, Projeto2.randInt(1, 10));
      }
      Cana g = Cana.randChoice();
      Projeto2.debug("solicitando %s ao atravessador de cana %s", pedido, g);
      try {
        Projeto2.especialista(g).get(pedido);
      } catch (InterruptedException e) {
        Projeto2.setVerbose(true);
        Projeto2.debug(
            "interrompido durante solicita��o%n" + "     %s do fornecedor de cana %s", pedido, g);
        return;
      }
      Projeto2.debug("recebi %s do fornecedor de cana %s", pedido, g);
      consome(pedido);
    }
  } // run()