皆さんはポーリングループをご存知でしょうか? ある条件が満たされるまで処理を待たせるため、 ループを繰り返し、処理を進めない手法です。 条件が満たされるまで処理を待ちたいという事は実際の現場では よくあることだと思います しかし、ポーリングループはパフォーマンスを低下させてしまいます。 そこで、ポーリングループを使用せず、条件が満たされるまで待ちたい場合 マルチスレッドで使用するwaitメソッドと notifyAllメソッドの待ち合わせを 利用します。 以下のサンプルは「肉を焼く」スレッドと 「肉を食べる」スレッドが存在します。 「肉を焼く」スレッドでは肉を使用する権利を得る (synchronizedでロックする)前に 1秒間空けているため、 先に「肉を食べる」スレッドが権利を得て動き出します。 しかし、肉の状態が「焼き」に変わるまでwaitメソッドで待機します。 その際、whileルー