0
我有以下代码:C++多线程11内存错误
somefunc(string s, semaphore* sem) {
//some functionality
sem->signal();
}
int main() {
int num = 0;
semaphore sem(0);
vector<string> arr;
for (string& s : arr) {
++num;
thread(somefunc, s, &sem).detach();
}
for (int i = 0; i < num; i++)
sem.wait();
}
我正在里面std::string
分配SIGSEGV
错误在哪里thread()
是线。这段代码有什么问题吗? semaphore
是一个使用互斥锁和条件变量的自定义类。
什么样的内存错误? – user2079303
对不起,我刚添加了详细信息 – hovo
写了一个[mcve]。 – user2079303