共有リソースに要素を追加しようとするプロデューサーがいるマルチスレッドアプリケーションを作成しています。プロデューサーが共有リソースで要素を生成する順序を維持したいと考えています。
たとえば、私の共有リソースは SynchronizedQueue であり、P1、P2、P3、P4 が p1、p2、p3、p4 の順序で新しい要素を生成し、その間に P5 プロデューサーがその要素をキューに追加しているため、P1、 P2、P3、P4 はロックを待機します。P5 がロックを解放すると、P1 ~ 4 のいずれかがロックを取得するため、要素の順序が失われます。
ロックを待つ要素の順序を維持する方法はありますか? 私の理解では不可能ですが、これがプログラムで達成できるかどうかを確認したいと思います。