在Qt中与另一个线程通信的最佳实践是什么?

时间:2010-05-02 06:42:01

标签: qt multithreading communicate

我有一个QThread派生类,它通过向主线程发送QEvents来与主线程进行通信。

主线程与第二个线程通信的最佳方式是什么?

主线程有一个指向第二个的指针。

1 个答案:

答案 0 :(得分:5)

在Qt中对象之间进行通信的最佳方式是使用信号和插槽。它是一种线程安全的方式,由事件循环处理,不需要您的锁定。你也可以使用事件,虽然这种使用看起来有点奇怪 - 事件是发生事件的通知,而不是聊天的工具。

您还可以使用QMutex,QSemaphore,QWaitCondition和QReadWriteLock等线程原语(与QMutex相同,但正如其名称所示,允许您锁定读取或写入,而不是同时锁定两者)。

您应该阅读Qt文档,特别建议您从Thread Support in Qt页面开始。