【发布时间】:2011-07-22 14:40:27
【问题描述】:
如果我的应用程序生成数据缓慢但消耗数据很快,那么它是否适合双缓冲区实现?基本思想是让生产者填充后缓冲区,而消费者处理前缓冲区。 我不希望客户端看起来好像在等待数据。我想平衡生产和消费。我怎样才能实现这个功能?即使我有一个后台缓冲区线程......它也必须与前台缓冲区线程同步,以便前台缓冲区知道何时有新数据(缓冲区已交换)。如果后台缓冲区线程产生数据的时间过长,那么前台缓冲区将不得不等待处理它。
void fill_back_buffer() {
//wait to fill buffer
//fill back buffer
//swap buffers and notify other thread
}
void process_data() {
//wait to see if buffers have been swapped
//buffers been swapped so send data out
//while sending data out start filling back buffer with new data
}
【问题讨论】:
标签: c multithreading pthreads doublebuffered