1:

一个QWaiteCondition(A)  和若干个QMutex(M) 协作 同步若干个QThread。

其中QWaiteCondition(A) 中存在一个列表(listmutex)保存和其协作的QMutex(M1...Mn),每次调用 QWaiteCondition::wakeone()时从此列表中按次序找到一个QMutex的对象 (Mn)激活

通过{

QMutex mut;

mut.lock();

A.wait(mut);//A 是QWaitCondition对象 将mut添加到listmutex中

mut.unlock();

}

 

2:即有若干个要同步地QTthread 由一个QWaiteCondition 和若干个Qmutex来控制同步。其中一般每个同步点使用一个Qmutex(或每个线程一个QMutex,视实际情况而定),并且使用前要先 lock  再 unlock。QWaiteCondition.listmutex中不会保存重复的QMutex的对象

posted on 2017-11-17 09:49  keleman  阅读(220)  评论(3编辑  收藏  举报