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();
}