程序基于用户输入创建多个线程不起作用(cin)
Program to create a number of threads based on user input not working (cin)?
如果这个问题看起来很简单,我深表歉意。我还在学习线程。我已经尝试在这里寻找解决方案,但没有找到任何解决方案。
我正在尝试让我的程序根据用户输入创建许多线程(例如:"cin>> 5"将创建 5 个线程),但它说"线程 myThreads[ i ]"中的"i"需要是一个常量值。代码如下:
void exec(int n)
{
cout << "Thread " << n << endl;
}
int main()
{
int numThreads = 0;
// create threads
cin >> numThreads;
thread myThreads[numThreads]; // this part says myThreads "must be a constant value"
for (int i = 0; i < numThreads; i++)
{
myThreads[i] = thread(exec, i);
}
for (int i = 0; i < numThreads; i++)
{
myThreads[i].join();
}
cout << "Done!" << endl;
}
关于如何修复该部分的任何想法?我已经尝试了几种不同的方法,但到目前为止它们还没有奏效。谢谢。
多线程没有问题。问题是用作动态数组的静态数组。
尝试这样的事情:
thread* myThreads = new thread[numThreads];
有关C++动态内存的更多信息:http://www.cplusplus.com/doc/tutorial/dynamic/
詹姆斯·阿德基森的UPD:不要忘记delete[]
阵列以避免内存泄漏。
相关文章:
- sigwait() 在多线程程序中不起作用
- MS 本机单元测试 - 断言::线程失败不起作用
- 线程之间的通信不起作用 - C++
- Qt信号和插槽如果从QRunnable或其他线程调用,则不起作用
- 谷歌语音识别不起作用,因为冲突线程Qt C++
- 线程函数参数的前向声明不起作用
- 使用 Visual c++ 进行多线程同步不起作用
- 通知所有在多线程C++不起作用.导致死锁
- 多线程 - 彼得森算法不起作用
- 为什么此C 线程示例不起作用
- Eclipse c++11 线程支持不起作用
- C 11线程不起作用
- WinAPI 的睡眠在子线程中不起作用
- QMutex ,如果线程在起作用,请在此处等待
- 使用CSokcet和CWinThread,来自线程的PostMessage不起作用
- 程序基于用户输入创建多个线程不起作用(cin)
- 线程对象的 WaitForSingleObject 在 DLL 卸载中不起作用
- C++获取线方法不起作用
- 套接字:客户端读取消息时多线程不起作用
- Qt - 同步线程不起作用 - 线程停止但实际上不会停止,有时在不应该停止的时候停止