我是 C++ 并发的新手。我只是尝试创建新线程并尝试运行它。 但我收到内存故障(coredump)错误。
现在可以找到导致内存故障的原因了。当我尝试使用 gdb 中创建的 coredump 进行调试时,我得到了这个,但无法理解错误在哪里
程序因信号 11(分段错误)而终止。 strcmp@@GLIBC_2.2.5 中的 #0 0x0000000000603d20 ()
#include<iostream>
#include<thread>
using namespace std;
void test(){
std::cout<<"hi fro thread";
}
int main(){
std::cout<<"hi fro main";
std::thread myThread(test);
myThread.join();
return 0;
}
这是错误。
using namespace std;
,并且在调用诸如 std::cout 之类的东西时仍然使用 std::
前缀。理论上,删除 using namespace std;
应该可以。