如果我的应用程序生成数据缓慢但消耗数据很快,那么它是否适合双缓冲区实现?基本思想是让生产者填充后缓冲区,而消费者处理前缓冲区。我不希望客户端看起来好像在等待数据。我想平衡生产和消费。我怎样才能实现这个功能?即使我有一个后台缓冲区线程....它也必须与前台缓冲区线程同步,以便前台缓冲区知道何时有新数据(缓冲区已交换)。如果后台缓冲区线程花费太长时间来生成其数据,那么前台缓冲区将不得不等待处理它。
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
}