我一直在C++(作業調度程序庫?)中尋找一個可重用的執行管道庫。我在Boost內找不到任何東西。所以,我終於找到了兩位候選人:建立執行管道的C++庫
我失去了任何其他候選人?有沒有人使用過它們?它們在並行io和多線程方面有多好? 這些庫似乎仍然缺少依賴關係處理。比如,它似乎並不清楚,我怎麼一會寫東西,如:
$ cat /dev/urandom | tr P Q | head -3
在這個非常簡單的情況下,管道走自下而上的,而當head
過程停止拉動第一cat
停止執行。
但是我不明白我怎麼可以從多線程和或並行IO的情況下受益,如:
$ cat /raid1/file1 /raid2/file2 | tr P Q > /tmp/file3
有沒有辦法對我說:執行tr
7線程時8個處理器可用。
我想你混淆了一句:管道並不自動意味着*各個步驟*在管道是paralleliseable(如你的例子說明),它只是意味着所有(或某些)步驟可以並行執行並在它們之間輪詢/推送數據。 – 2013-03-08 15:45:30
我會進一步探索google併發性庫。它只是被提議成爲C++標準的一部分。更多在這裏http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3534。html#解決方案 – 2013-04-07 12:55:29