Java の wait メソッドはスレッドを待機させるために使用されます。

Javaのwait()メソッドとは、スレッド間通信に使用されるメソッドで、現在のスレッドを待機状態にする働きがあり、他のスレッドによって同じオブジェクトのnotify()メソッドやnotifyAll()メソッドが呼び出されてウェイクアップするまで 待機します。

具体的に言うと、wait() メソッドの主な機能は次のとおりです。

  1. スレッド同期:wait()メソッドは通常、同期化されたキーワードと一緒に使用され、スレッドの同期化を実装するために使用されます。スレッドがオブジェクトのwait()メソッドを実行すると、オブジェクトのロックが解放され、スレッドは待機状態に入り、他のスレッドがnotify()またはnotifyAll()メソッドによって起床しロックを取得するまで待機します。
  2. 特定の条件が満たされるのを待つ:スレッドはwait()メソッドを使用して、特定の条件が満たされるのを待機できます。条件が満たされない場合、スレッドはwait()メソッドを介して待機状態に入り、条件が満たされた後にのみ実行を続行します。
  3. リソースの無駄遣いを防ぐ:wait()メソッドはリソースの無駄遣いを防ぐために利用できます。スレッドが特定のイベントの発生を待機する必要があるとき、wait()メソッドを呼び出して待機状態に入り、イベントが発生するまで実行を再開しません。これにより、スレッドのむだなポーリングや ビジーウェイティングを回避し、システムリソースが節約されます。

wait()メソッドはsynchronizedブロック内でのみ使用されるべきことに注意しましょう。さもない場合は、IllegalMonitorStateException例外が発生するでしょう。なおスレッドは、wait()メソッドを呼び出した後、オブジェクトのロックを解放し、他のスレッドによるロックの取得と処理を可能にします。

bannerAds