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)。 –