Είναι ασφαλές το νήμα του concurrenthashmap put;

Πίνακας περιεχομένων:

Είναι ασφαλές το νήμα του concurrenthashmap put;
Είναι ασφαλές το νήμα του concurrenthashmap put;
Anonim

Βασικά σημεία του ConcurrentHashMap: Η κλάση ConcurrentHashMap είναι thread-safe, δηλαδή πολλά νήματα μπορούν να λειτουργήσουν σε ένα μεμονωμένο αντικείμενο χωρίς καμία επιπλοκή. … Στο ConcurrentHashMap, το Αντικείμενο χωρίζεται σε έναν αριθμό τμημάτων ανάλογα με το επίπεδο συγχρονισμού.

Είναι ασφαλές για το νήμα;

Ένα αντικείμενο MessageService είναι ουσιαστικά αμετάβλητο αφού η κατάστασή του δεν μπορεί να αλλάξει μετά την κατασκευή του. Ως εκ τούτου, είναι ασφαλές για το νήμα. Επιπλέον, εάν το MessageService ήταν πράγματι μεταλλάσιμο, αλλά πολλά νήματα έχουν πρόσβαση μόνο για ανάγνωση σε αυτό, είναι επίσης ασφαλές για το νήμα.

Είναι το μέγεθος του ConcurrentHashMap ασφαλές για νήματα;

Class ConcurrentHashMap Ένας πίνακας κατακερματισμού που υποστηρίζει πλήρη ταυτόχρονη ανάκτηση και υψηλό αναμενόμενο ταυτόχρονο για ενημερώσεις. … Ωστόσο, παρόλο που όλες οι λειτουργίες είναι ασφαλείς για νήμα, οι λειτουργίες ανάκτησης δεν συνεπάγονται κλείδωμα και δεν υπάρχει καμία υποστήριξη για το κλείδωμα ολόκληρου του πίνακα με τρόπο που να αποτρέπει κάθε πρόσβαση.

Είναι το HashMap ασφαλές για νήμα;

Το

HashMap δεν είναι συγχρονισμένο. Δεν είναι ασφαλές για νήματα και δεν μπορεί να κοινοποιηθεί μεταξύ πολλών νημάτων χωρίς τον κατάλληλο κωδικό συγχρονισμού, ενώ το Hashtable είναι συγχρονισμένο.

Γιατί το ConcurrentHashMap αποτυγχάνει ασφαλές;

Τα

παράλληλα πακέτα, όπως το ConcurrentHashMap, το CopyOnWriteArrayList, κ.λπ. είναι ασφαλή για αποτυχία στη φύση. Στο παραπάνω απόσπασμα κώδικα, χρησιμοποιούμε Fail-Safe Iterator. Ως εκ τούτου, παρόλο που ένα νέο στοιχείο προστίθεται στη Συλλογή κατά τη διάρκεια τουεπανάληψη, δεν δημιουργεί εξαίρεση.

Συνιστάται: