タグ

ブックマーク / www.eeb.co.jp (1)

  • 第3回 ある条件が満たされるまで処理を待たせる | 株式会社イーブ

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

    mukaken
    mukaken 2018/01/19
  • 1