Использование метода getState () в потоках - Java - PullRequest
1 голос
/ 09 октября 2011

Допустим, у нас есть два потока A, B и один Mutex (общий ресурс) M.

Я запускаю поток A (a.start ()), и он вызывает синхронизированный метод в M , и это вызывает A до ожидание () . Как поток B (b) может следовать A после того, как A входит в wait ()?

спасибо

EDIT

Существует ли метод, "похожий" на join () , в котором поток b присоединится к потоку, запущенному a, когда он находится в состоянии ОЖИДАНИЯ? (Как я обнаружил, join () произойдет, когда поток завершит , но я не хочу, чтобы это произошло

1 Ответ

1 голос
/ 09 октября 2011

Объект в потоке "t" может вызвать wait, если находится в синхронизированном блоке, и jvm будет управлять выполнением синхронных блоков, которые работают ... --- На самом деле это довольно просто, ожидающие объекты будут захватыватьблокировка выполнения этого потока, когда противоположный объект уступает, и начинает работать .... Итак, вкратце, ваш объект B начнет работать, если он:

1) находится в том же потоке, что и A

2) "wait ()", когда A прекращает работу

3) выполняется в синхронном блоке

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