gpt4 book ai didi

c++ - qt中的条件变量,在哪里声明

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:06 25 4
gpt4 key购买 nike

我有两个 qhread,其中一个线程需要使用条件变量等待另一个线程。我的例子 QWaitCondition 给出了 here .

所以我有一个条件变量QWaitCondition my_condition;。该变量必须对两个线程都可见。我的问题是:我应该在哪里定义my_condition?我不喜欢使用全局变量。但是,它应该是一个全局变量吗?如果它需要是全局的,我应该把它的定义放在哪里,这样它对两个线程都是可见的?

最佳答案

你可以在任何地方声明它。例如,将其声明为您的主应用程序 QObject 的成员变量(例如,如果这是一个 GUI 应用程序,则为您的 QMainWindow 子类),并将指向它的指针传递给访问条件变量的线程 QObjects 的构造函数,就可以正常工作.

看来您混淆了线程安全和变量范围。在您的情况下,线程只是一个需要通过指针访问变量(QWaitCondition)的类。只需将此指针传递给类构造函数并存储即可。

关于c++ - qt中的条件变量,在哪里声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23477939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com