Μεταβίβαση μηνύματος

Άλλος τρόπος διαδιεργασιακής επικοινωνίας είναι η χρήση της μεταβίβαση μηνύματος (message passing) που μπορεί να εκφραστεί με τις διαδικασίες: Ο συντονισμός της αποστολής και της παραλαβής μπορεί να γίνει: Με τις κλήσεις αυτές μπορεί να εκφραστεί το πρόβλημα του παραγωγού-καταναλωτή.

const N = 100;

int queue[N];

void
producer(void)
{
        int item;
        message m;

        for (;;) {
                create(&item);
                receive(consumer, &m);
                build_message(item, &m);
                send(consumer, &m);
        }
}

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

        for (i = 0;  i < 100; i++)
                send(producer, &m);
        for (;;) {
                receive(producer, &m);
                extract_item(&m, &item);
                send(producer, &m);
                consume(&item);
        }
}