Junior — Middle
Ποια είναι τα βασικά μέθοδοι της κλάσης Object που χρησιμοποιούνται για εργασία με ροές και συγχρονισμό;
sobes.tech AI
Απάντηση από AI
Στην Java, η κλάση Object παρέχει αρκετές μεθόδους που χρησιμοποιούνται συχνά κατά την εργασία με νήματα και συγχρονισμό:
-
wait()— κάνει το τρέχον νήμα να περιμένει μέχρι ένα άλλο νήμα να καλέσειnotify()ήnotifyAll()στο ίδιο αντικείμενο. Χρησιμοποιείται για την οργάνωση της αναμονής μιας συγκεκριμένης κατάστασης. -
notify()— ξυπνά ένα μόνο νήμα που περιμένει σε αυτό το αντικείμενο. -
notifyAll()— ξυπνά όλα τα νήματα που περιμένουν σε αυτό το αντικείμενο.
Αυτές οι μέθοδοι πρέπει να καλούνται μέσα σε ένα συγχρονισμένο μπλοκ ή μέθοδο, διαφορετικά θα ριχτεί μια εξαίρεση IllegalMonitorStateException.
Παράδειγμα χρήσης:
synchronized (sharedObject) {
while (!condition) {
sharedObject.wait();
}
// Ενέργειες μετά την εκπλήρωση της συνθήκης
}
// Σε άλλο νήμα
synchronized (sharedObject) {
// Αλλαγή κατάστασης
sharedObject.notify();
}