【发布时间】:2010-04-28 16:05:18
【问题描述】:
我是多线程的新手,我设计了一个程序,该程序从两个微控制器接收数据,测量不同的温度(环境温度和水温)并将数据绘制到屏幕上。现在这个程序是单线程的,它的性能很糟糕。
我获得了多线程的基本设计方法,但还不足以创建线程来执行任务,但我不知道如何让线程执行单独的任务并将数据放入共享数据池中。我想我需要创建一个包含一个消费者和多个生产者的队列(想使用 std::queue)。我在 gtkmm threading docs 上看到了一些代码,这些代码显示了一个 Con/Pro 队列,它们会锁定队列对象,生成数据并向睡眠线程发出信号,表明它已完成,然后生产者将进入睡眠状态。对于我需要的东西,我需要让一个线程休眠,如果我没有让任何线程休眠,是否会出现数据冲突,并且休眠一个线程会导致数据显着的数据延迟(我需要绘制 30 帧的实时数据)秒)
我将如何使用 gtkmm/glibmm 库对这样的队列进行编码。
【问题讨论】:
-
Linux 提供了一个命名管道,这个很有用。
标签: c++ multithreading queue gtkmm