2
編輯/解決:Joachim Pileborg的答案爲我做了這份工作。 THX多線程設置線程數量通過命令行參數或
請溫和一點,因爲這是我的第一個問題。
我是實際的lerning和C++特別是線程玩。我尋找一個答案(如果沒有一個準備好的東西,我會驚訝的發現,但是我無法找到答案)。
所以回到主題: 我「玩」的代碼看起來是這樣的(控制檯應用程序)
void foo(){
//do something
}
int _tmain(int argc, _TCHAR* argv[])
{
std::thread t[threadcount];
for (int i = 0; i < threadcount; ++i) {
t[i] = std::thread(foo);
}
for (int i = 0; i < threadcount; ++i) {
t[i].join();
}
}
是否有可能通過設置ARGV的THREADCOUNT的價值? 如果沒有可能有人請給我如何實現
std::thread::hardware_concurrency()
爲經緯其中一小段,因爲還存在的VisualStudio預先設定
const int threadcount = std::thread::hardware_concurrency();
感謝時給我一個錯誤。
是的,這基本上是我的想法之一,但是當這樣做時,Visualstudio給我: C2057:預期的常量表達式 –
如果我沒有弄錯,錯誤似乎不相關;你有沒有嘗試從'threadcount'的聲明中省略'const'? – Codor
@OniuoniuOnuoinuo C++沒有[*可變長度數組*](http://en.wikipedia.org/wiki/Variable-length_array),因此您無法使用變量作爲大小創建數組。改爲使用['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)。 –