English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

الفرق بين الخرائط المتوازية والخرائط المزامنة في Java

الـمـعـمـلـة الـمـتـوازية Hashmap تم إدخالها في JDK 1.5. يتم تطبيق قفل على مستوى حاويات الفقاعات المسمى أجزاء عند إضافة أو تحديث المخطط. لذلك، يسمح المخطط المتوازي بتنفيذ عمليات القراءة والكتابة المتوازية على المخطط. 

الـمـعـمـلـة syncronizedHashMap (Collection.syncronizedHashMap()) هي طريقة من واجهة Collection. تنطبق هذه الطريقة على المجموعة بأكملها. لذلك، إذا كان سطر عمل يصل إلى هذا المخطط، فإنه لا يمكن لأي سطر عمل آخر الوصول إلى نفس المخطط. 

الرقمالключالخريطة المتوازيةالخريطة المتزامنة
1
تنفيذ
إنه كلاس يحقق واجهة المتوازية والقابلة للسلسلة. 
إنه أحد طرق كلاس Collection.  
2
هيكل القفل
قفل جزء
قفل الخريطة بأكملها. 
3
الأداء
الخريطة المتوازية تسمح بالقراءة والكتابة المتوازية. لذلك، الأداء أفضل من الخريطة المتزامنة. 
لا يمكن للعديد من الأطراف أن تصل إلى الخريطة في نفس الوقت. لذلك، الأداء أقل مقارنة بالخريطة المتوازية.
4
الключ الفارغ
لا يمكن استخدام null كключ أو قيمة. 
إنه يسمح بوجود null كключ.
5 
استثناء التغيير المتوازي
إنه لا يعيد استدعاء استثناء التغيير المتوازي. 
مولد المستعرضات المتزامنة يعيد استدعاء استثناء التغيير المتوازي

مثال على SynchronizedMap

public class SynchronizedMapExample {
   public static void main(String[] args) {
      Map<Integer,String> laptopmap = new HashMap<Integer,String>();
      laptopmap.put(1,"IBM");
      laptopmap.put(2,"Dell");
      laptopmap.put(3,"HCL");
      //إنشاء خريطة متزامنة
      Map<Integer,String> syncmap = Collections.synchronizedMap(laptopmap);
      System.out.println("Synchronized map is : "+syncmap);
   }
}

مثال على ConcurrentHashMap---

public class ConcurrentHashMap---Example {
   public static void main(String[] args) {
      //ConcurrentHashMap---
      Map<Integer,String> laptopmap = new ConcurrentHashMap---<Integer,String>();
      laptopmap.put(1,"IBM");
      laptopmap.put(2,"Dell");
      laptopmap.put(3,"HCL");
      System.out.println("ConcurrentHashMap---	is:	"+laptopmap);
   }
}