1

だから、私は本質的に生産者と消費者の問題を解決しようとしていますが、少し異なります.

  • 「プロデューサー」スレッドはトークンを作成し、それらをリストに追加します
  • 「消費者」スレッドは、トークンのリストをスキャンして処理します。
  • 処理の結果、一部のトークンが削除される可能性があり、他のトークンはもう少し長く残る可能性があります。

したがって、主な違いは、必ずしも FIFO ではなく、プロデューサーの出力を任意の順序でリストから削除できることです。

現在、2 つのスレッド間で共有される構造の同期について考えています。ロックレス構造にしたい。ロックレス キューについては知っていますが、上記の理由により、キューはユース ケースにあまり適していません。次のように、これにはまだキューを使用できます。

  • トークンをデキューして処理する
  • まだ削除しない場合は、キューに戻します

とはいえ、できれば避けたいところです。理想的には、あるスレッドが追加でき、別のスレッドが任意の要素を削除できる、ロックのない単一リンク リストが必要です。それに関するいくつかの実装または論文を教えてもらえますか?

4

0 に答える 0