Как вы говорите, процесс "релиза" совершенно другой - в том случае, если он основан на notify()
, другой - на завершении потока. Это совершенно разные звонки, которые служат совершенно другим целям.
На самом деле, существуют явные предупреждения , а не для вызова wait()
на Thread
мониторах (хотя я не могу сразу найти эти предупреждения), поскольку внутренний код Java получает блокировки для них (и использует wait
/ notify
)
Но нет, вызов join()
на Thread
не освобождает монитор, если текущий выполняющийся поток владеет им.
По сути, вы вообще не должны думать о них как о похожих - нужно ждать окончания потока; другой - для ожидания совместной координации.