7

void*仕事 ( ) をTBBタスクから実行中/ブロック中の複数のワーカーに渡すための高速なスレッド間通信メカニズムが必要です。現在、pipe()+の使用を検討していlibeventます。Intel Threading Building Blocks で使用する、より高速でエレガントな代替手段はありますか?

4

3 に答える 3

7

スレッドは同じメモリ空間を共有するため、mutex ロックで標準メモリを使用できるはずです。pipe()+libevent ソリューションは、各プロセスが異なるメモリ空間を持つプロセス間通信により適しているようです。

于 2010-03-08T14:51:23.520 に答える
2

条件変数を使用したスレッドセーフ キューの実装を確認してください。STL キュー、ミューテックス、および条件変数を使用して、スレッド間通信を容易にします。(これが Intel Threading Building Blocks に適用できるかどうかはわかりませんが、TBB は質問/タイトルに記載されていないため、他の人は私のようにここにたどり着くと思います-スレッド間通信メカニズムを探していますIPC ではありません。この記事は、私を助けたように、彼らを助けるかもしれません。)

于 2010-08-23T16:33:22.760 に答える
1

Boost lock free と thread safe キューを見てください。非常に使いやすく、非常にうまく機能します。仕事のためにキューをポーリングする別々のコアで実行されているスレッドで使用しました。

http://www.boost.org/doc/libs/1_55_0/doc/html/lockfree.html

于 2013-11-23T12:01:07.120 に答える