linux内核多线程同步的问题。线程A要等到线程b和c都完成后,再执行。该

linux内核多线程同步的问题。线程A要等到线程b和c都完成后,再执行。该怎么做。我试过把信号量初始化成负一。在线程A里面做down操作的时候,直接就返回了,并没有去等待。
好像完成量也不合适,是一个线程通知另一个线程
最新回答
岛川奈

2024-10-22 06:48:57

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();

}

}