طريقة أخرى لحل الطعام الفيلسوف (بحاجة إلى نقطة في الاتجاه الصحيح) [مغلقة]
-
03-07-2019 - |
سؤال
عن البرمجة إحالة طلب إلى تنفيذ حل الطعام الفيلسوف المشكلة.يجب أن تفعل ذلك بطريقتين:
- استخدام الانتظار() و notifyAll() آلية
- باستخدام القائمة المتزامنة بنية البيانات المقدمة في جافا API
لدي بالفعل إكمال التنفيذ الأولى.التي المتزامنة هيكل البيانات أستاذي الحديث عن الخطوة التالية ؟ أنا لا أتذكر لها ذكر أي شيء.لا تحتاج إلى أي رمز المصدر, فقط المؤشر في الاتجاه الصحيح.
المحلول
قد ترغب في النظر في java.util.المتزامنة جافادوك الصفحة للحصول على بعض الأفكار.هذه ليست فقط المتزامنة هياكل البيانات (بعض جافا.util هياكل البيانات أيضا قد بنيت في دعم التزامن) ولكن هذا هو نقطة انطلاق جيدة.
Collections.synchronizedList
هو ما يمكن أن أسميه "القائمة بيانات متزامنة هيكل" - هو مجمع على هياكل البيانات التي لا تدعم التزامن.
نصائح أخرى
ربما كانت تعني التفاف جافا مجموعات متزامنة مغلفة, على سبيل المثالباستخدام Collections.synchronizedList()
, أو دائما متزامنة هياكل البيانات في java.util.concurrent
, مثلا CopyOnWriteArrayList
.
ليس بنية البيانات...ولكن في حي ما قد تحتاج http://java.sun.com/javase/6/docs/api/java/util/concurrent/Semaphore.html?
هناك المتزامنة مكتبة جافا API.
لديه بعض مجموعات
نظرة على جافا.util.المتزامنة حزمة
http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html