2010-03-08 16 views
6

Çalışmaları/engelleme işlemlerinde bulunan birkaç işçiye TBB görevleri arasında çalışmak (void*) için hızlı bir iş parçacığı iletişim mekanizmasına ihtiyacım var. Şu anda pipe() + libevent kullanıyorum. Intel Threading Building Blocks ile daha hızlı ve daha şık bir alternatif var mı?Hızlı iş parçacığı iletişim mekanizması

+0

Genel değişkenler? – kennytm

cevap

6

İş parçacıkları aynı bellek alanını paylaştığından, standart belleği mutex kilitleriyle kullanabilmeniz gerekir. Pipe() + libevent çözümü, her işlemin farklı bir bellek alanına sahip olduğu süreçler arası iletişim için daha uygun görünmektedir.

+1

Cevabınız için teşekkür ederiz. Bunun için concurrent_bounded_queue kullanacağım sanırım :) – Stan

2

Implementing a Thread-Safe Queue using Condition Variables. Birimler arası iletişimi kolaylaştırmak için bir STL sırası, bir muteks ve bir koşul değişkenini kullanır. (Bunun Intel Threading Building Blocks'a uygulanıp uygulanmadığını bilmiyorum, fakat TBB soru/başlıkta belirtilmediğinden, sanki diğerleri benim yaptığım gibi burada olacak gibi düşünürüm. IPC değil. Ve bu makale bana yardım ettiği gibi yardımcı olabilir.)

İlgili konular