当前位置: 技术问答>linux和unix
pthread线程问题
来源: 互联网 发布时间:2016-07-24
本文导语: 各位大侠,有这样一段代码,是测试线程滴 #include #include #include #include #include void *thr_function(void *arg){ printf("in thread......n"); return ((void*)0); } int main(){ #ifdef _POSIX_THREADS pthread_t tid; int err; if((err=pthread_c...
各位大侠,有这样一段代码,是测试线程滴
如果不在main中加sleep(1),程序就只会输出 in main......, 如果加了,程序会成功输出in thread...... in main......
严重不理解,主线程怎么会先于其它线程而结束呢?莫非pthread线程库也是时序问题???我的linux版本是2.6.18
谢谢
#include
#include
#include
#include
#include
void *thr_function(void *arg){
printf("in thread......n");
return ((void*)0);
}
int main(){
#ifdef _POSIX_THREADS
pthread_t tid;
int err;
if((err=pthread_create(&tid,NULL,thr_function,NULL))!=0){
perror(strerror(err));
exit(EXIT_FAILURE);
}
//sleep(1);
printf("in main......n");
return 0;
}
如果不在main中加sleep(1),程序就只会输出 in main......, 如果加了,程序会成功输出in thread...... in main......
严重不理解,主线程怎么会先于其它线程而结束呢?莫非pthread线程库也是时序问题???我的linux版本是2.6.18
谢谢
|
UP
|
你可以在主线程中加上pthread_join()函数,让主线程等待创建的线程结束 然后主线程在结束。