日期:2014-05-16  浏览次数:20630 次

求教,关于pthread_join 以及线程之间关系的问题
程序结构如下:
fun1()
{
  pthread_t pid2;//数据类型忘了怎么写,就是线程ID的类型
  ……
  pthread_create(pid2,fun2,……);
  ……
  pthread_join(pid2);
}

fun2()
{  
  ……
}

main()
{
  pthread_t pid1;//数据类型忘了怎么写,就是线程ID的类型
  ……
  pthread_create(pid1,fun1,……);
  ……
}

现在的问题是:
1.pid2算是主线程的子线程还是pid1的子线程啊,如果是pid1的子线程那么他和主线程是什么关系啊
2.fun1()的pthread_join(pid2)是阻塞pid1呢还是阻塞主线程呢
3.主线程中可以pthread_join(pid2)吗?


刚学习这方面的知识,不是很明白啊,求教!!!

------解决方案--------------------
pid2是pid1的子线程
pthread_join(pid2)阻塞pid1
主线程可join pid2
------解决方案--------------------
同一个进程里任意线程可以join任意线程、
------解决方案--------------------
同一个进程里任意线程“地位平等”