LINUX下多线程编程基础问题

2024-12-15 21:20:10
推荐回答(2个)
回答1:

你的主线程在 pthread_create 结束并打印 success 后,直接返回退出了,导致整个进程都结束了,你新创出来的线程自然也结束了。解决方法是让主线程等待新创线程结束后再退出,如下

int tmp = pthread_create(&t_id1, NULL, run1, NULL);
if(tmp == 0)
cout << "success" << endl;

// wait t_id1 complete
pthread_join(t_id1, NULL);

return 0;

回答2:

多线程的程序,在编译的时候要加参数让它能连接到多线程库的,gcc中好像是 -lpthread 什么的,不知道g++对应的是什么