在Qt

时间:2019-05-30 14:42:59

标签: c++ multithreading qt qthread qmutex

我正在与Qt一起制作一个GUI应用程序,但是我很难在主线程(GUI线程)和另一个线程(工人线程)之间共享数据,该线程是为并行运行一个函数而创建的。我需要工作线程将信息发送到主线程以实时更新GUI。

我通常要做的是为每个线程提供我要共享的数组的指针和互斥锁的指针,然后每次读取/写入数据时都将互斥锁,然后将其解锁。辅助线程将向主线程发送SIGNAL,以告诉它在每次更改后更新GUI。 唯一的问题是,在工作线程中,我使用的是我无法更改的类中的函数,我只能将共享数据的指针作为参数提供给它,因此这将是不安全的,两者线程可能会尝试同时访问它(产生损坏/不一致的数据,甚至崩溃)。

那么如何在确保数据完整性且无冲突的同时在两个线程中使用相同的数据?

0 个答案:

没有答案