AS400多线程
#define THREAD_SIZE 3
void *thread(void *parm)
{
int f = 0;
syslog("create thread ");
while( f < 50 )
f++;
syslog("thread end");
pthread_exit(NULL);
return NULL;
}
int main()
{
pthread_t t_id??(THREAD_SIZE??);
int i, ret;
for (i=0; i<THREAD_SIZE; i++)
{
ret=pthread_create(&t_id??(i??), NULL ,(void *)thread, NULL);
if (ret != 0) {
syserr("create thread error");
exit(-1);
}
for (i=0; i<THREAD_SIZE; i++)
{
pthread_join(t_id??(i??),NULL);
}
syslog("Main End");
exit(0);
}
其中 syslog 函数用fopen,fputs fclose 写日志。
这个程序创建的辅线程执行都没问题,但为什么所有的辅线程执行完后1分多钟,主线程才结束那?
因为 syslog("thread end"); 与 主线程里的 syslog("Main End"); 打印时间差1分多。
请问谁知道主线程为什么延迟这么长时间才结束?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论