我想知道是否有任何C++等價類,去渣java.util.concurrent.ArrayBlockingQueue中C++等效java.util.concurrent.ArrayBlockingQueue中
http://download.java.net/jdk7/docs/api/java/util/concurrent/ArrayBlockingQueue.html
我想知道是否有任何C++等價類,去渣java.util.concurrent.ArrayBlockingQueue中C++等效java.util.concurrent.ArrayBlockingQueue中
http://download.java.net/jdk7/docs/api/java/util/concurrent/ArrayBlockingQueue.html
從Intel Threading Building Blocks(TBB)查看tbb::concurrent_bounded_queue。
(聲明:我還沒有真正有機會在一個項目中使用過,但我一直在下面TBB)。
標準C++沒有等價的,因爲它沒有併發的概念;沒有併發性,這樣的結構既沒有用處也沒有危險,因爲如果沒有其他線程,它可能會永久地阻塞。
然而,這很容易實現,但實現細節將取決於您正在使用的線程庫。作爲便箋,即將出現的C++ 1x標準將爲標準庫增加一些基本的線程功能。
英特爾線程構建模塊有幾個不同的併發隊列,其中一個可能類似。
當前版本的C++不包含任何等效的東西(它根本不包括任何線程支持)。下一個版本的C++(C++ 0x)也不包括直接等價的。
相反,它具有從中你可以創建一個線程安全的阻塞隊列(如互斥鎖,條件變量等一起普通的容器,同步訪問它)都較低的水平結構。
它還具有更高級別的構造集合:promise
,future
,packaged_task
等等。這些完全隱藏了相對較低級別的細節,如線程之間的排隊。相反,你基本上只是要求完成某件事,稍後你可以得到結果。所有的細節都在內部處理。
如果你想要的東西,現在,你可以考慮升壓進程間圖書館。這包括(除其他之外)Message Queue類。如果內存服務,它支持阻塞和非阻塞變體。
concurrent_queue可能是你正在尋找一個。它配備了來自Microsoft的並行模式庫。