2
像條件信號機制一樣,我希望一個任務等待,直到接收到某個信號或某個變量爲真。 Boost lib提供了這種機制,但TBB沒有。爲什麼英特爾TBB沒有提供像boost這樣的條件變量?
如何在TBB中實現這種情況?
像條件信號機制一樣,我希望一個任務等待,直到接收到某個信號或某個變量爲真。 Boost lib提供了這種機制,但TBB沒有。爲什麼英特爾TBB沒有提供像boost這樣的條件變量?
如何在TBB中實現這種情況?
您是否在使用非常古老的TBB?
有任務「等待」是什麼TBB還沒有過去處理好了,但目前的TBB news包含此:
ISO C++線程類 - 圍繞OS線程輕薄便攜 包裝。這是一個近似於ISO C++ 200x類線程( http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2691.pdf的第30.2節)的近似值。 現在,TBB允許您選擇哪一個最好, 基於任務的線程與基於線程的 您的情況。線程通常比 任務更好,當「工作」是 真的更多的等待比計算,如 :
* GUI, I/O or network interface threads. * Threads that need to wait on external events. * Programs that previously needed to use both native threads and Intel® TBB tasks.
即他們承認TBB的任務並行不是萬能藥,你有時需要更多像「傳統」線程模型的I/O。事實上,如果您檢查最新的reference manual,您會發現TBB現在包含條件變量! (見8.4節)