من المجموعات المتزامنة القديمة إلى البدائل الحديثة
استبدل Vector و Hashtable بمجموعات مختارة وفق احتياجات قابلية التعديل والتزامن الفعلية.
مقارنة الكود
✕ Legacy synchronized collection
Hashtable<String, Session> sessions = new Hashtable<>(); sessions.put(id, session);
✓ Concurrent Collections API
ConcurrentMap<String, Session> sessions = new ConcurrentHashMap<>(); sessions.put(id, session);
هل ترى مشكلة في هذا الكود؟ أخبرنا.
لماذا يتفوق الأسلوب الحديث
تزامن مقصود
يوثّق النوع المختار ما إذا كانت المشاركة متوقعة.
قابلية توسع أفضل
يتجنب ConcurrentHashMap قفلاً واحداً يشمل الجدول بأكمله في عمليات الوصول المعتادة.
واجهات برمجية حديثة
يعمل بصورة طبيعية مع عمليات المجموعات والخرائط المتزامنة الحالية.
الأسلوب القديم
Hashtable
الأسلوب الحديث
ConcurrentHashMap
منذ JDK
5
الصعوبة
متوسط
دعم JDK
من المجموعات المتزامنة القديمة إلى البدائل الحديثة
متاح
متاح على نطاق واسع منذ JDK 5 (سبتمبر 2004)
كيف يعمل
تزامن Vector و Hashtable كل عملية عبر واجهات برمجية قديمة. ينبغي للشيفرة الحديثة عادةً استخدام ArrayList أو HashMap للبيانات المحصورة في خيط واحد، واستخدام مجموعات متزامنة مصممة لهذا الغرض عند الحاجة إلى تعديل مشترك.
توثيق ذو صلة
إثبات