多线程的exit()逻辑

今天很巧再一次调试了多线程的代码。主要思想就是:通过pthread_create创建一个线程,然后通过主线程A控制创建出来的线程B,完成各种功能。

video_thread()

{

while()

{

display();

}

exit(0);

}


main()

{

pthread_create(&video,,video_thread,);


while(quit)

{

pthread_join(video,NULL);

quit = 0;//退出主线程

}

printf("terminate all process \n")

}


然后发现当video_thread退出的时候,主线程的printf没有打印出terminate all process。有点懵了......后来。这是为什么呢,几经周折在网上终于查到了exit函数。原来在调用exit函数后创建的video线程退出了,这个exit退出的太干净,什么都没有留下。所以pthread_join一直在等待中,等待线程退出的消息。

随后把exit换成printf(“closed video\n”)终于得到了想好的答案。


记录一下,以便后忘。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值