主线程为什么会结束?
看了篇文章说:pthread_join使一个线程等待另一个线程结束(可以理解),若没有pthread_join主线程会很快结束从而使整个进程结束(这句话理解不了啊,请看代码)。
main()
{
pthread_t tid_produce[10];
Set_concurrency(10);
for(int i=0;i<10;i++)
{
Pthread_create(&tid_produce[i], , , );//////######
}
for(int i=0;i<10;i++)
{
Pthread_join(&tid_produce[i],NULL);///////*****
}
return 0;
}
我的问题就是:为什么需要*****行呢?######行在“return 0”之前,换句话说就那10个子线程结束之后才能顺序执行到“return 0”,那么这里还存在主线程(main函数)先于那10个子线程结束的情况?
[解决办法]
a线程创建b线程之后,两个线程就没有关系了,不管那些b线程是运行1毫秒还是运行1万年,都不会耽误a线程创建b线程之后继续往下走
[解决办法]