thread-2のthread-1によって呼び出されたときのwait()メソッドとjoin()メソッドの両方は、スレッド2がいつか、またはスレッド2が完了するまでスレッド1を待ちます。wait(long timeout)とjoin(long millis)の違いは?
我々はこれらのメソッドのオーバーロードされたバージョンを使用している場合は、スレッド1が実行可能になります待機(長いタイムアウト)の場合は、その後
、待ち時間(長いタイムアウト)をIEと(長いミリ秒)に参加します通知(または通知)またはタイムアウト(いずれか最初のいずれか)が発生します。
join(long millis)の場合、thread-2はスレッド2が完了したとき、またはタイムアウトが発生したとき(どちらか早い方のどちらか)に実行可能になります。
したがって、これら2つの実装の違いは何ですか?私が思った
一部はこれらです: - 待機用
- ()は、私たちは私たちが待っているオブジェクトのロックを持っている必要があります。 join()の場合、これらは必要ありません。
- wait()を実行すると、スレッドは取得したロックを削除し、再度実行されるとロックを再度取得します。しかし、参加はどうですか?同期ブロック(またはメソッド)から実行された場合、スレッドは結合を実行した後にロックを削除しますか?
答えは問題です。呼び出しスレッドに通知されるまでブロックを待ちます。結合されたスレッドが完了するまでブロックを結合します。結合に関わるロックはありません。 –