一个linux的线程问题,,比如说要创建3个线程,他们的执行顺序必须是1-2-3,是不是直接 pt 10

一个linux的线程问题,,比如说要创建3个线程,他们的执行顺序必须是1-2-3,是不是直接pthread_tt[3];for(inti=0;i<3;i++)pthrea... 一个linux的线程问题,,比如说要创建3个线程,他们的执行顺序必须是1-2-3,是不是直接
pthread_t t[3];
for(int i=0;i<3;i++)pthread_create(&t[i],null,f,j):就行了呢?还是要用jion啊,,如果用jion的话麻烦具体说下,感激不尽!
展开
 我来答
可乐cjf
2015-11-27 · 超过15用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:19.3万
展开全部
肯定不行,主线程第一次循环完后,就多了一个线程,这是是执行新创建的线程还是主线程,是没有强制要求的,多以你要认为它是随进的,即可能继续创建一个线程,也可能去执行新线程。这是有调度算法决定的,而且不同的系统,相同系统的不同版本都是不一样的。如果你是想用pthread_jion()的话可以这样:
int pid;
for(int i=0;i<3;i++)
{
pid = pthread_create(&t[i],null,f,j);

pthread_jion(pid,NULL);

}(这段代码我没有试验过哦,可能有错)
这样只有新建的线程执行完毕后,主线程才开始第二次循环,然后等第二个执行完毕。注意:如果新线程是里面有死循环那主线程就再也不可能执行了。所以这种方法是有很多弊端的,建议学习下《linux环境高级编程》的同步互斥那个章节,这样学习会系统一些。
希望对你有帮助。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式