Οι περιπτώσεις του FixedOrderComparator δεν συγχρονίζονται. Η κλάση δεν είναι ασφαλής για το νήμα κατά την κατασκευή, αλλά είναι ασφαλής για την εκτέλεση πολλαπλών συγκρίσεων αφού έχουν ολοκληρωθεί οι λειτουργίες εγκατάστασης.
Είναι ασφαλές για σύγκριση ο συγκριτής;
Οι περισσότερες υλοποιήσεις Comparator δεν κάνουν κάτι τέτοιο, αλλά ένα σενάριο που μπορεί εύλογα να συμβεί είναι η χρήση ενός SimpleDateFormat για τη σύγκριση συμβολοσειρών που αντιπροσωπεύουν ημερομηνίες. Δυστυχώς, το ίδιο το SimpleDateFormat δεν είναι ασφαλές για νήματα. Ο συγκριτής είναι μια διεπαφή, δεν έχει εγγενείς ιδιότητες ταυτόχρονης χρήσης.
Είναι το νήμα πολλαπλών νημάτων ασφαλές;
Ασφαλές νήμα: Η υλοποίηση είναι εγγυημένη ότι δεν έχει συνθήκες αγώνων όταν προσπελάζεται από πολλά νήματα ταυτόχρονα. Ασφαλές υπό όρους: Διαφορετικά νήματα μπορούν να έχουν πρόσβαση σε διαφορετικά αντικείμενα ταυτόχρονα και η πρόσβαση σε κοινόχρηστα δεδομένα προστατεύεται από συνθήκες αγώνων.
Ποιες κατηγορίες συλλογής είναι ασφαλείς για νήμα;
Οι μόνες δύο συλλογές παλαιού τύπου είναι ασφαλείς για νήμα: Vector και Hashtable.
Είναι το Java ArrayList ασφαλές για νήματα;
Οποιαδήποτε μέθοδος αγγίζει τα περιεχόμενα του Vector είναι ασφαλής για νήματα. Το ArrayList, από την άλλη πλευρά, δεν είναι συγχρονισμένο, με αποτέλεσμα να είναι not thread safe. Έχοντας κατά νου αυτή τη διαφορά, η χρήση του συγχρονισμού θα επιφέρει επιτυχία στην απόδοση. Επομένως, εάν δεν χρειάζεστε μια συλλογή ασφαλή για νήματα, χρησιμοποιήστε το ArrayList.