生产者/消费者线程中的消费者

时间:2011-03-25 16:05:43

标签: c multithreading concurrency pthreads

有一个消费者和单个生产者线程。生产者线程数据采集速度很慢。它向套接字查询数据,并且为消费者生成数据所花费的时间明显长于消费者处理和发送数据所花费的时间。问题是我正在更新显示器,所以我希望更新速度减慢,因此它们看起来是连续的而不是突发更新。

我现在正在使用双缓冲区,但是消费者等待太长时间才能交换缓冲区,因为生产者花费的时间太长而无法生成数据。也许如果我将数据分割成更小的块并使用队列代替?这样生产者会一次给消费者一点点喂食吗?有没有人遇到过这个问题?

2 个答案:

答案 0 :(得分:1)

为什么没有一个线程每秒更新一次屏幕?线程可以休眠一秒,唤醒,检查生产者和消费者正在做什么,并根据他们的进度更新屏幕。你会得到每秒更新。如果您想要更快或更慢,请更改定时器间隔。

答案 1 :(得分:0)

我将根据数据请求的速率将发送速率锁定到客户端的频率。我原本以为生产者会比它快得多,所以这就是我把它变成生产者/消费者线程的原因。这更像是帧速率问题,我需要以一致的速率同步输出。