Назад к вопросам
Junior — Middle
74
В каких сценариях в программировании применяют функцию wait() для синхронизации процессов или потоков?
Ответ от нейросети
sobes.tech AI
В Java метод wait() используется для синхронизации потоков, когда один поток должен приостановить выполнение и ждать уведомления от другого потока.
Основные сценарии применения wait():
- Когда поток должен ждать наступления определённого условия, например, появления данных в очереди.
- В реализации паттерна "производитель-потребитель", где потребитель ждёт, пока производитель добавит данные.
- Для координации доступа к общим ресурсам, чтобы избежать состояния гонки.
Важно, что wait() вызывается внутри блока синхронизации (synchronized), и поток освобождает монитор объекта, позволяя другим потокам выполнять работу. После вызова notify() или notifyAll() другой поток может продолжить работу.
Пример:
synchronized (sharedObject) {
while (!condition) {
sharedObject.wait(); // поток ждёт
}
// обработка после наступления условия
}