Modèle producteur-consommateur

Un article de Wikipédia, l'encyclopédie libre.

Le modèle producteur-consommateur est un exemple informatique de synchronisation de ressources. Il peut s'envisager dans différents contextes, notamment en environnement multi-thread.

Soit un ensemble de producteurs, un consommateur et une file d'attente F. Le problème est de synchroniser l'accès à une imprimante.

Le code exécuté par les producteurs est le suivant :

   créer un document D
   verrouiller F:
       ajouter D à la fin de la file F
       envoyer un signal par F au processus consommateur
   déverrouiller F

Le code exécuté par le consommateur :

   verrouiller F:
       tant qu'il y a des consommateurs:
           attendre signal de F
           pour chaque élément E de F:
               imprimer E
           fin pour
           effacer tous les éléments de la file F
       fin tant-que
   déverrouiller F

L'implémentation est inspirée des threads POSIX (pthreads). Notons que l'attente du signal est une opération qui déverrouille le mutex associé, attend un signal d'un autre thread, puis reverrouille le mutex une fois le signal reçu.

[modifier] Liens externes