ホームページ  >  記事  >  Java  >  Javaのwait()メソッドとjoin()メソッドの違いは何ですか

Javaのwait()メソッドとjoin()メソッドの違いは何ですか

青灯夜游
青灯夜游オリジナル
2018-12-14 15:28:399487ブラウズ

Java の wait() メソッドと join() メソッドの違いは、これらが異なる Java パッケージに存在することです。wait() メソッドはスレッド間通信に使用され、待機状態にあるスレッドを開始できます。 ; join() メソッド 複数のスレッド間で順序付けを追加するために使用され、強制される待機を解消することはできません。

Javaのwait()メソッドとjoin()メソッドの違いは何ですか

java の wait() メソッド

wait() メソッドの機能は次のとおりです。現在のスレッドを待機させる 待機状態に入るには、wait() を、notify() メソッドおよび NotifyAll() メソッドと一緒に使用します。

notify() メソッドとnotifyAll() メソッドは、待機中のスレッドを起動するために使用されます。notify() メソッド: 単一のスレッドを起動し、notifyAll() メソッド: すべてのスレッドを起動します。

java の join() メソッド

join() メソッドは、このスレッドが終了して実行が完了するまで待機します。その主な機能は同期であり、スレッド間の実行を「並列」から「直列」に変更します。

つまり、スレッド A でスレッド B の join() メソッドを呼び出すと、スレッドの実行プロセスが変更されます。スレッド A は、実行を続ける前に、スレッド B の実行が完了するまで待機する必要があります。

wait() メソッドと join() メソッドの類似点

1. wait() メソッドと join() メソッドは両方とも同じです。一時停止に使用 Java の現在のスレッドは待機状態になります。

2. Java では、interrupt() メソッドを呼び出して、wait() および join() のスレッド状態を中断できます。

3、wait() と join() はすべて非静的メソッドです。

4、wait() と join() はすべて Java でオーバーロードされています。 wait() と join() にはタイムアウトがありませんが、タイムアウト パラメーターを受け入れます。

wait() メソッドと join() メソッドは似ていますが、wait() メソッドと join() メソッドにはまだ違いがあります。

#wait() メソッドと join() メソッドの違い

Javaのwait()メソッドとjoin()メソッドの違いは何ですか

1 、異なる Java パッケージに存在します(最も明らかな違い)

wait() メソッドは java.lang.Object クラスで宣言する必要がありますが、join() メソッドは Java にあります。 lang.Thread クラスで宣言されます。

2. さまざまな使用目的

wait() メソッドはスレッド間通信に使用され、join() メソッドは複数のスレッド間のソートを追加するために使用されます。最初のスレッドが実行を開始する前に、2 つのスレッドが実行を完了する必要があります。

3. スレッドの起動の違い

notify() と NoticeAll( を使用して、wait() メソッドを通じて待機状態に入るスレッドを開始できます。 ) メソッド。ただし、接続を中断したスレッドが実行を終了しない限り、join() メソッドによって課された待機を解除することはできません。

4. 同期コンテキスト (最も重要な違い)

wait() メソッドは、同期された (同期された) コンテキスト、つまり同期されたブロックまたはそれ以外の場合は、IllegalMonitorStateException がスローされます。

ただし、Java では、同期コンテキストの有無にかかわらず、join() メソッドを呼び出すことができます。

要約: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。

以上がJavaのwait()メソッドとjoin()メソッドの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。