如何让线程A等待线程B完成后,再继续线程A
答案:2 悬赏:70 手机版
解决时间 2021-02-15 04:42
- 提问者网友:欲劫无渡
- 2021-02-14 09:26
如何让线程A等待线程B完成后,再继续线程A
最佳答案
- 五星知识达人网友:大漠
- 2021-02-14 09:48
pthread_exit(NULL);
}
int main()
{
//初始化一个互斥锁
pthread_mutex_init(&mut,NULL);
//创建A同学线程
pthread_create(&thread[0], NULL,studentA,NULL);
//创建B同学线程
pthread_create(&thread[1], NULL,studentB,NULL);
//等待A同学线程结束
pthread_join(thread[0],NULL);
//等待B同学线程结束
pthread_join(thread[1],NULL);
}
}
int main()
{
//初始化一个互斥锁
pthread_mutex_init(&mut,NULL);
//创建A同学线程
pthread_create(&thread[0], NULL,studentA,NULL);
//创建B同学线程
pthread_create(&thread[1], NULL,studentB,NULL);
//等待A同学线程结束
pthread_join(thread[0],NULL);
//等待B同学线程结束
pthread_join(thread[1],NULL);
}
全部回答
- 1楼网友:舊物识亽
- 2021-02-14 10:37
bac的顺序,只是启动下一个线程前,需要等待另一个线程的结果返回,你可以配合接口,来回调,
例如:
class main implement blistener{
public void starttask(){
启动b线程,并传入listener实例,来回调用;
}
//override
public void btaskcomplete(){
b线程成功执行;
启动a线程;
}
}
class b extends thread{
可以构造时获取listener实例;
public void run(){
...
执行完毕出结果,listener.btaskcomplete();
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯