使用单例在线程之间传递数据

时间:2014-04-09 14:50:42

标签: c++ multithreading qt singleton

让我快速解释一下我想做什么。我目前有一个由2个线程组成的程序。一个工作线程和一个GUI线程,工作线程正在以2kHz收集传感器数据,GUI线程可视化收集的数据。该程序使用Qt框架用c ++编写。

我已经尝试过信号和插槽选项,我通过将Qvector<PointF>作为工作线程中的信号传递到我的GUI线程中的插槽来完成此操作。但后来我遇到了#34;波动数据&#34;的问题,而正在绘制数据时我的工人被停止了。

然后我考虑使用单例在两个线程之间传递数据,这是主要问题; 在这种情况下使用单例是一个很好的解决方案吗?或者有更好的方法来解决问题吗?

我已经通过使用全局Qvector<PointF>和全局互斥来保护数据来测试这个概念,但是由于全局变量令人不悦,我想改用单例。

祝你好运

1 个答案:

答案 0 :(得分:1)

不,这不是单身人士的意思。你有两个线程,只提供一个共享机制,将数据从一个移动到另一个,并使这个机制可用于两个线程。