جافا: مثال المستهلك المنتج - التعامل مع القراءة / الكتابة المتزامنة

نشرت: 2019-02-17

مثال المستهلك المنتج - التعامل مع القراءة المتزامنة: اكتب

producer-consumer problem (المعروفة أيضًا bounded-buffer problem ) هي مثال Java كلاسيكي لمشكلة مزامنة متعددة العمليات.

تصف المشكلة عمليتين ، the producer the consumer ، اللذان يشتركان في مخزن مؤقت مشترك ثابت الحجم يستخدم كقائمة انتظار. تتمثل مهمة المنتج في إنشاء جزء من البيانات ووضعه في المخزن المؤقت والبدء من جديد.

في الوقت نفسه ، يستهلك المستهلك البيانات (أي إزالتها من المخزن المؤقت) قطعة واحدة في كل مرة. تكمن المشكلة في التأكد من أن المنتج لن يحاول إضافة البيانات إلى المخزن المؤقت إذا كان ممتلئًا وأن المستهلك لن يحاول إزالة البيانات من المخزن المؤقت الفارغ.

أدناه برنامج Java البسيط سيخلق هذه المشكلة:

أمثلة جافا - مشكلة المستهلك المنتج

مشكلة:

الدقة:

أضف الكلمة الأساسية synchronized لوضع قفل على data أثناء استخدامها.

برنامج جافا أفضل:

نتيجة نموذج مستهلك منتج Java:

جافا-منتج-مستهلك-تعليمي-قرمش