记一次bug

bug是这样的:两个线程访问同一个对象,类似于生产者、消费者模型

消费者给出的是一个智能指针,生产者给出的是裸指针,生产出来的数据通过本地一个智能指针的cache保存在本地,以供消费者使用。

开始每次生产者生产出来的数据直接构造智能指针,缓存在本地;消费者获取的时候,直接赋值给消费者,这样做的目的是:尽量减少数据的拷贝,特别是视频数据这样的,在640X480分辨率下,一切都正常。然而,当我把分辨率调节到1920X1080时,会出现崩溃,也可视频根本渲染不出来,是个白屏。

后来灵机一动,如果把数据完完全全复制一份给消费者呢,这时候奇迹出现了,视频出来了,而且也米有崩溃!

 

经验教训:要想使一个线程完完全全地正常工作起来,最好是完完全全地拥有一份数据!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值