0

次の概念がプログラミングパターンとして知られているのではないかと思います。

ワーカーキューを想像してみてください。ただし、処理時に各キューエントリが削除されるのではなく、別のスレッドがremove-eventをキャッチしたとき、またはremove-eventがトリガーされたときに削除する必要があります。

したがって、次のようになります。

  • コマンドがキューに入る
  • 2番目のコマンドがキューに入る
  • 3番目..。
  • 最初のコマンドが処理されます
  • 最初のコマンドは削除されるのを待ちます
  • 2番目のコマンドが処理されます
  • remove-最初のコマンドのイベントが発生しました
  • 最初のコマンドが削除されます
  • 2番目のコマンドは削除されるのを待ちます
  • ..。

私はこれを十分に理解できるように明確にしたことを願っています。

今、そのような振る舞いを実装したブーストライブラリはありますか?この振る舞いを表すパターンはありますか?

4

1 に答える 1

1

私が見る限り、あなたは2つのキューについて話しているだけです。「新しい」キューは保留中の削除のキューです。標準キュー(deque)で問題ありません。削除イベントを通知するには、ミューテックスと条件変数が必要です。そのようなパターンの名前が欲しいのは少し厄介です(人々は最近あまりにも多くを期待しています)...私がそれを説明しているなら、私たちは分離された除去スレッド(それがあなたがそれを実装する方法であると仮定して)、非同期除去プロセスを持っていると言うかもしれません(同様に)、または遅延要素の削除(別のスレッドで行われていなくても当てはまります)。

于 2012-11-14T09:57:46.893 に答える