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