只见过 一个QWaiteCondition对象 和一个QMutex对象协作 控制 若干个 线程同步。
是否只有这一种方式。有没有 一个QWaitcondition 与多个QMutex配合同步多个线程的例子。
在 Qt 中,一个 QWaitCondition 对象通常与一个 QMutex 对象配合使用,以协调多个线程的同步。因为每个 QMutex 对象只能用于保护一组相关的共享数据,因此通常需要使用多个 QMutex 对象来保护不同的共享数据。
假设有多个线程需要等待某个条件满足,可以使用一个 QWaitCondition 对象来管理这些线程的等待。具体地,对于每个需要等待的线程,可以创建一个 QWaitCondition::Waiter 对象,并将其添加到 QWaitCondition 对象的等待队列中。每个 Waiter 对象都关联着一个 QMutex 对象,以便在等待期间保护相应的共享数据。
当某个条件得到满足时,可以通过调用 QWaitCondition::wakeAll() 或 QWaitCondition::wakeOne() 函数来唤醒等待队列中的所有线程或其中一个线程。唤醒的线程会尝试获取与其关联的 QMutex 对象,以便重新访问共享数据。
总之,虽然通常情况下只需要一个 QMutex 对象和一个 QWaitCondition 对象来协调线程同步,但是在复杂的情况下,可能需要使用多个 QMutex 对象和多个 QWaitCondition 对象来管理共享数据和等待线程。
可以创建一个 "QWaitCondition::Waiter 对象",并将其添加到 QWaitCondition 对象的等待队列中??
哪有 "QWaitCondition::Waiter 对象" ? 是QMutex 对象吧????
是否可以这样认为 ,一个QWaitCondition 同步若干个需同步的线程。而QMutex只是保证临界区内变量唯一操作,QMutex和若干线程是否同步没有关系。