Junior — Middle
Μπορείτε να χρησιμοποιήσετε τον τροποποιητή synchronized για μια στατική μέθοδο στη Java;
sobes.tech AI
Απάντηση από AI
Ναι, στη Java μπορείτε να χρησιμοποιήσετε τον τροποποιητή synchronized για στατικές μεθόδους. Σε αυτήν την περίπτωση, το κλείδωμα γίνεται σε επίπεδο κλάσης (αντικείμενο Class), και όχι σε επίπεδο στιγμιότυπου.
Αυτό σημαίνει ότι αν ένα νήμα εκτελεί μια στατική συγχρονισμένη μέθοδο, άλλα νήματα που προσπαθούν να καλέσουν οποιαδήποτε άλλη στατική συγχρονισμένη μέθοδο αυτής της ίδιας κλάσης θα μπλοκαριστούν μέχρι να απελευθερωθεί το κλείδωμα.
Παράδειγμα:
public class Example {
public static synchronized void staticMethod() {
// κώδικας συγχρονισμένος στο αντικείμενο Example.class
}
}
Έτσι, το synchronized για τις στατικές μεθόδους διασφαλίζει την ασφάλεια των νημάτων σε επίπεδο κλάσης.