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