gpt4 book ai didi

c++ - 多线程通过命令行参数设置线程数或

转载 作者:搜寻专家 更新时间:2023-10-31 02:17:58 29 4
gpt4 key购买 nike

编辑/解决:Joachim Pileborg 的回答帮了我的忙。谢谢

请保持温和,因为这是我的第一个问题。

我正在学习和使用 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();

提前致谢。

最佳答案

由于threas的数量要通过threadcount来控制,所以在命令行中设置可以通过添加

来实现
int threadcount = atoi(argv[1]);

实现。可以进行一些错误检查,例如报告非正数线程的错误。

如果要通过编程方式确定线程数,则视具体平台而定,this question可能会很有趣。

关于c++ - 多线程通过命令行参数设置线程数或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35055559/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com