我正在遍歷結構向量並單獨處理每個結構。
它看起來是這樣的:循環/ for_each的每個迭代是否可以並行執行? (C++ 11)
for_each(begin(data),end(data),DoTask);
//assume "data" is std::vector<DataT>
//assume DoTask is a function that takes a DataT by reference
的代碼是顯著慢,因爲DoTask連接到特定的網站和HTML分析。
加快速度的最佳方法是什麼?
我的目標是同時分析多個DataT。
我很新線程,但std::async和std::future看起來很有前途。
-1該示例將完全同步,因爲從std :: async'創建的'std :: future'的析構函數將會阻塞,此外這不會提供工作量等。關於應該真正與併發庫一起使用。 – inf 2013-01-20 12:18:38
@bamboon你說得對,我沒有想到'未來'的破壞者,好點。當我寫這個答案時,我對線程庫的理解並不包含未來。我想,我已經修正它是正確的。而且OP不需要工程測試。 – 2013-01-20 16:05:10