Semaphores είναι ασφαλές για το νήμα όπως εξηγείται στο javadoc: Εφέ συνοχής μνήμης: Ενέργειες σε ένα νήμα πριν από την κλήση μιας μεθόδου "απελευθέρωσης", όπως ενέργειες απελευθέρωσης-πριν από επιτυχημένη μέθοδος "απόκτησης", όπως η απόκτηση σε άλλο νήμα. Οι περισσότερες λειτουργίες στα αντικείμενα της java.
Οι σηματοφόροι εμποδίζουν τη φυλή;
Όχι, οι λειτουργίες κλειδώματος πραγματοποιούνται ατομικά. Ολόκληροι οι κλειδωμένοι δεν θα εκτελεστούν ατομικά. Και να θυμάστε, τα νήματα μοιράζονται έναν κοινό χώρο διευθύνσεων και όλα συνδέονται με μια διαδικασία.
Είναι ασφαλής η χρήση του νήματος;
Ένα MessageService αντικείμενο είναι ουσιαστικά αμετάβλητο αφού η κατάστασή του δεν μπορεί να αλλάξει μετά την κατασκευή του. Ως εκ τούτου, είναι ασφαλές για το νήμα. Επιπλέον, εάν το MessageService ήταν πράγματι μεταλλάσιμο, αλλά πολλά νήματα έχουν πρόσβαση μόνο για ανάγνωση σε αυτό, είναι επίσης ασφαλές για το νήμα.
Είναι το νήμα ασφαλές και συγχρονισμένο;
Ασφαλές νήματα σημαίνει: η μέθοδος γίνεται ασφαλής για πρόσβαση σε πολλαπλά νήματα χωρίς κανένα πρόβλημα ταυτόχρονα. Η συγχρονισμένη λέξη-κλειδί είναι ένας από τους τρόπους επίτευξης "ασφαλούς νήματος". Αλλά Θυμηθείτε: Στην πραγματικότητα, ενώ πολλά νήματα προσπαθούν να αποκτήσουν πρόσβαση σε συγχρονισμένη μέθοδο, ακολουθούν τη σειρά, έτσι γίνεται ασφαλής η πρόσβαση.
Είναι δίκαιοι οι σηματοφόροι;
Γενικά, οι σηματογράφοι που χρησιμοποιούνται για τον έλεγχο της πρόσβασης σε πόρους θα πρέπει να αρχικοποιούνται ως δίκαιοι, για να διασφαλιστεί ότι κανένα νήμα δεν θα εξαφανιστεί από την πρόσβαση σε έναν πόρο. Οταν χρησιμοποιείτεσηματοφόροι για άλλα είδη ελέγχου συγχρονισμού, τα πλεονεκτήματα απόδοσης της μη δίκαιης παραγγελίας συχνά υπερτερούν των εκτιμήσεων δικαιοσύνης.