Threading - ждать () - PullRequest
       8

Threading - ждать ()

3 голосов
/ 11 сентября 2011

Метод wait() объекта может быть вызван только в синхронизированном контексте, т. Е. Текущий поток должен иметь блокировку объекта для вызова метода wait().Теперь, если поток T1 имеет блокировку на объекте (obj) и вызывает его метод ожидания obj.wait().Как другие потоки могут заблокировать этот объект (obj), чтобы они также могли вызывать wait, который уже обладает T1?

Ответы [ 2 ]

9 голосов
/ 11 сентября 2011

wait освобождает синхронизированный контекст. Из документации :

Текущий поток должен владеть монитором этого объекта. Тема релизы владелец этого монитора и ждет, пока другой поток не уведомит ожидающие потоки на мониторе этого объекта (...)

0 голосов
/ 11 сентября 2011

Вам нужно синхронизироваться только на время вызова метода wait (), а не на время ожидания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...