- - - - CENAPAD-MGCO

contents index A seguir: Conclusões Acima: Mensagens Anterior: Mensagens


Produtor/Consumidor com Mensagens

Exemplo do Tanembaum ([Tanenbaum, 1987])

#define N 100

void producer (void) {
  char item; message m;
  while (TRUE) {
    produce_item(&item);
    receive(consumer, &m); /* espera por msg vazia */
    build_message(&m, item);
    send(consumer, m);
  }
}

void consumer (void) {
  char item; int i; message m;

  /* producao inicial de mensagens vazias */
  for (i = 0; i < N; i++) send(producer, m);

  /* regime */
  while (TRUE) {
    receive(producer, &m);
    extract_item(m, &item);
    consume_item(item);
    send(producer, m);
  }
}


Osvaldo Carvalho - Postscript - Comentários?