ملخص
بالنسبة للبرامج متعددة الفوضى ، فإن المنتجين ونماذج المستهلكين هم نماذج كلاسيكية للغاية. أكثر دقة ، يجب أن يطلق عليه "نموذج المنتج والمستهلك-ويرهاوس". بعد مغادرة المستودع ، يفتقر المنتجون والمستهلكون إلى مساحة التخزين المشتركة ، ولا توجد مشكلة غير تعاونية.
مثال مثالي
تحديد مشهد. يسمح المستودع فقط بتخزين 10 عناصر. في الوقت نفسه ، تحتاج إلى الانتباه إلى النقاط الأربع التالية:
1. يمكن إنتاج منتج واحد فقط في نفس الوقت.
2. يمكن أن يكون استهلاك المستهلك واحد متاحًا في نفس الوقت.
3. عندما يكون المستودع فارغًا ، لا يمكن للمستهلكين الاستمرار في الاستهلاك. يحتاج المستهلكون إلى إعادة تدوير ما إذا كانت حالة المستودع الحالية فارغة قبل استهلاك المستهلك.
4. عندما يكون المستودع ممتلئًا ، لا يمكن تحديد المنتج. للتنفيذ.
رمز المثال هو كما يلي:
الفئة العامة {public static void Main (] args) ؛ {Synchronized (this) {بينما index == store_size) {ther {this.wait () ؛} catch (interruptedException e) {E.PrintStackTrace () ؛} ts [index ++] = product ؛ ) ؛ ) {e.printstacktrace () ؛} string rofuT = storeproduts [index- 1] ؛ () ؛ string production = "Product"+i ؛ }}}