社区
C++ 语言
帖子详情
请问如何用C++实现缓存?
rabbit729
2007-12-24 11:35:42
我有两个线程,线程A负责产生数据,线程B负责向终端输出数据,由于产生数据的速度比较慢,所以在这两个线程之间采用缓存来解决。线程A将产生的数据写入缓存,当存放一定数据后通知线程B从缓存中读出数据送给终端设备。在整个流程中要求线程A和线程B处于稳定状态,也就是说线程A一边向缓存中放数据,线程B一边向缓存中取数据,并且需要达到平衡状态,也就要求线程B不能空。请问我应该采用什么样的数据结构来实现这个缓存比较合适?我想用队列来实现,不知大家的意见如何?谢谢大家!
...全文
778
11
打赏
收藏
请问如何用C++实现缓存?
我有两个线程,线程A负责产生数据,线程B负责向终端输出数据,由于产生数据的速度比较慢,所以在这两个线程之间采用缓存来解决。线程A将产生的数据写入缓存,当存放一定数据后通知线程B从缓存中读出数据送给终端设备。在整个流程中要求线程A和线程B处于稳定状态,也就是说线程A一边向缓存中放数据,线程B一边向缓存中取数据,并且需要达到平衡状态,也就要求线程B不能空。请问我应该采用什么样的数据结构来实现这个缓存比较合适?我想用队列来实现,不知大家的意见如何?谢谢大家!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dtor
2007-12-25
打赏
举报
回复
既然a线程慢,b线程快,那必然会出现b等待的状况。
你这样的情况,用队列当然是最好的。
rabbit729
2007-12-24
打赏
举报
回复
to:foochow:
ACE_Message_Queue 这个是个???是MFC的类么?还是??
foochow
2007-12-24
打赏
举报
回复
ACE_Message_Queue 可以参考这个的实现,很简单
laolaoliu2002
2007-12-24
打赏
举报
回复
把数据存在队列里面
babyvox1999
2007-12-24
打赏
举报
回复
FIFO
lenux
2007-12-24
打赏
举报
回复
由于产生数据的速度比较慢, 线程B必然会有取不到数据的时候,
“要求线程B不能空”??
ouyh12345
2007-12-24
打赏
举报
回复
队列就可以了
p0303230
2007-12-24
打赏
举报
回复
up
m_syb
2007-12-24
打赏
举报
回复
A/B线程应该通过一个信号进行通讯
B在通常状态下,等待信号
A接收数据,当判断需要触发B的时候,设置信号状态,
则B开始工作,完成当前的工作后,继续等待信号
建议采用双缓冲,这样可以保护双线程读写数据不发生冲突
wpalhm
2007-12-24
打赏
举报
回复
up!
flysky_zhou
2007-12-24
打赏
举报
回复
搜索下生产者消费者模式....................
C++
实现
LRU
缓存
机制
对于开发者而言,
缓存
的接触必不可少,无论是浏览器
缓存
(如果是chrome浏览器,可以通过chrome:://cache查看),还是服务端的
缓存
(通过memcached或者redis等内存数据库)。
缓存
不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么,了解常见的
缓存
淘汰算法的策略和原理就显得特别重要。 常见的
缓存
算法: LRU (Least recently used) 最近最少使...
LRU
缓存
算法
c++
实现
在如今的项目开发中,
缓存
是一种必不可少的存储方式,目前在各种后台开发中,比较常见的一种
缓存
算法就是LRU了,LRU名为最近最少使用算法。它会将最近不常用的
缓存
数据淘汰掉,是一种Cache替换算法。 本文通过
c++
简单的
实现
这种算法,代码不长,但能很好的体现这种思想 思路: map 存储数据 ,
实现
查找效率O(1),双向链表
实现
算法逻辑 算法逻辑: 1....
【算法】LRU
缓存
算法的
C++
实现
LRU
缓存
算法是一种淘汰算法,也是一道经典的面试题,本文对LRU
缓存
算法的
C++
实现
做了讲解。
使用
C++
简单
实现
LRU
缓存
使用
C++
简单
实现
LRU
缓存
昨天碰巧复习到了LRU
缓存
机制,也就是最近最少使用,在好奇心的驱动下我想到了用
C++
简单的
实现
一下,本来原理也挺简单的,写出来并不难,但由于对
C++
的基础把握不劳,结果排查了好长时间的bug。现在总结一下,希望能帮到别的小可爱。 首先是malloc: 可能是C语言写习惯的,导致在
C++
进行内存分配的时候我也习惯用malloc,C和
C++
混用很可能就会出b...
c++
缓存
池
实现
一、问题与
实现
众所周知,在
c++
中频繁的new与delete其实是很消耗时间的,在要求高性能的地方,一般需要使用
缓存
池对内存进行使用与回收。
缓存
池的意思的就是事先分配好一定的空间,在使用时提供给用户,用户在用完后归还。只在开始和结束时进行new与delete,优势就是可以大大提高效率,劣势就是pop与push必须成对使用,不然就会造成内存泄漏,且非常不容易追踪。 代码实...
C++ 语言
65,214
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章