0

受信データが到着すると、バッファ(私の場合はベクトル)に継続的にデータを入力するスレッド(WRITER)があります。そして、受信データのバッファを定期的にチェックし、データの処理が完了した後にバッファをクリアする別のスレッド(READER)があります。代わりに 2 つのバッファー (A と B) を持つことを提案する実装​​を見たことがあります。WRITER はバッファ A に書き込み、データを読み取る時間になると、READER はバッファ A を引き継ぎ、WRITER は B への読み取りを開始します...そしてこの反転が続きます。

リファレンス コードまたはサンプル コードを探しましたが、見つかりませんでした。参考までに教えてください。また、これは最善かつ最も簡単なアプローチですか?

ありがとうございました

4

2 に答える 2

2

最も簡単な解決策は、Boost ライブラリの助けを借りて同期化されたキューを使用することです。

CodeProject hereにはこれに関する記事があり、Google には数え切れないほどの例があります。

于 2013-03-29T11:33:27.323 に答える
1

同期キューを実装するための多くのサンプルとヒントを見つけることができます。

条件変数を使用したスレッドセーフ キューの実装

C++11 同時実行チュートリアル – パート 3: 高度なロックと条件変数

于 2013-03-29T11:47:28.940 に答える