首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教怎么用C++实现缓存

2012-02-17 
请问如何用C++实现缓存?我有两个线程,线程A负责产生数据,线程B负责向终端输出数据,由于产生数据的速度比较

请问如何用C++实现缓存?
我有两个线程,线程A负责产生数据,线程B负责向终端输出数据,由于产生数据的速度比较慢,所以在这两个线程之间采用缓存来解决。线程A将产生的数据写入缓存,当存放一定数据后通知线程B从缓存中读出数据送给终端设备。在整个流程中要求线程A和线程B处于稳定状态,也就是说线程A一边向缓存中放数据,线程B一边向缓存中取数据,并且需要达到平衡状态,也就要求线程B不能空。请问我应该采用什么样的数据结构来实现这个缓存比较合适?我想用队列来实现,不知大家的意见如何?谢谢大家!

[解决办法]
队列就可以了
[解决办法]
由于产生数据的速度比较慢, 线程B必然会有取不到数据的时候,
“要求线程B不能空”??
[解决办法]
FIFO
[解决办法]
把数据存在队列里面
[解决办法]
ACE_Message_Queue 可以参考这个的实现,很简单
[解决办法]
搜索下生产者消费者模式....................
[解决办法]
A/B线程应该通过一个信号进行通讯
B在通常状态下,等待信号
A接收数据,当判断需要触发B的时候,设置信号状态,
则B开始工作,完成当前的工作后,继续等待信号

建议采用双缓冲,这样可以保护双线程读写数据不发生冲突
[解决办法]
既然a线程慢,b线程快,那必然会出现b等待的状况。
你这样的情况,用队列当然是最好的。

热点排行