QtConcurrent
太棒了。提供QtConcurrent功能的通用C++庫?
我會讓Qt的文檔不言自明:
QtConcurrent包括函數式編程風格的API進行並行處理名單,包括MapReduce和FilterReduce實現共享內存(非分佈式)系統,以及在GUI應用程序中管理異步計算的類。
舉例來說,你給QtConcurrent::map()
可迭代序列,並接受存儲序列中的類型的項目的功能,以及功能應用到集合中的所有項目。這是以多線程方式完成的,線程池等於系統上邏輯CPU的數量。
QtConcurrent
還有很多其他的功能,比如filter()
,filteredReduced()
等。標準的CompSci map/reduce功能等等。
我完全愛上了這個,但我正在開始一個不會使用Qt框架的OSS項目。這是一個圖書館,我不想強迫別人依賴像Qt這樣的大型框架。我試圖將外部依賴關係降到最低(這是體面的事情)。
我正在尋找一種通用的C++框架,它提供了與QtConcurrent
相同/相似的高級基元,並且可以與STL集合一起使用。 AFAIK boost
沒有像這樣(雖然我可能是錯的)。 boost::thread
與我正在尋找的相比是非常低的水平(但是如果請求的庫使用boost::thread
進行低級別工作,那將很不錯)。
我知道C#有一些與它們的並行擴展非常相似的東西,所以我知道這不是一個Qt唯一的想法。
你有什麼建議我使用?
QtConcurrent很酷。我調整了Mandelbrot示例以使用並行接口...可能會對你感興趣:http://hostilefork.com/thinker-qt/ – HostileFork 2010-06-12 16:56:46
@Hostile是的,QtConcurrent很酷。正如我所說,我一直在使用它。我只是在尋找類似於STL集合而沒有Qt本身的東西。 – Lucas 2010-06-12 16:59:14
我可能是錯的,但我認爲Qt的模塊化意味着你必須使用最多隻有QtCore和QtConcurrent(而不是「像Qt這樣的大型框架」)? – codinguser 2010-06-12 20:20:22