Aperçu
Pour les programmes multi-thread, les producteurs et les modèles de consommateurs sont des modèles très classiques. Plus précis, il doit être appelé "Modèle producteur-consommateur-commerçant". Après avoir quitté l'entrepôt, les producteurs et les consommateurs n'ont pas l'espace de stockage partagé, et il n'y a pas de problème qui n'est pas collaboratif.
Exemple exemplaire
Définir une scène. Un entrepôt permet uniquement de stocker 10 articles. Dans le même temps, vous devez faire attention aux 4 points suivants:
1. Un seul producteur peut être produit en même temps.
2. Une seule consommation de consommateurs peut être disponible en même temps.
3. Lorsque l'entrepôt est vide, les consommateurs ne peuvent pas continuer à consommer. Les consommateurs doivent recycler si le statut de l'entrepôt actuel est vide avant la consommation de consommateurs.
4. Lorsque l'entrepôt est plein, le producteur ne peut pas continuer à produire. à exécuter.
L'exemple de code est le suivant:
Classe publique Concurrence {public Static Void Main (String [] Args) {Warehouse Warehouse = New Warehouse (); producteur producteur = nouveau producteur (Warehouse); ; {Synchronisé (this) {while (index == store_size) {try {this.wait ();} catch (interruptedException e) {e.printStackTrace ();}} ts [index ++] = produit; ); ) {E.PrintStackTrace ();} String Proput = StoreProduts [Index- 1]; .out.println ("Consommation:" + Product + ", l'entrepôt actuel:" + Index + "A Cargo"); (); Return Product;}} Le producteur de classe implémente Runnable {Warehouse Warehouse; String Product = "Product" + I; }}}