bug是这样的:两个线程访问同一个对象,类似于生产者、消费者模型
消费者给出的是一个智能指针,生产者给出的是裸指针,生产出来的数据通过本地一个智能指针的cache保存在本地,以供消费者使用。
开始每次生产者生产出来的数据直接构造智能指针,缓存在本地;消费者获取的时候,直接赋值给消费者,这样做的目的是:尽量减少数据的拷贝,特别是视频数据这样的,在640X480分辨率下,一切都正常。然而,当我把分辨率调节到1920X1080时,会出现崩溃,也可视频根本渲染不出来,是个白屏。
后来灵机一动,如果把数据完完全全复制一份给消费者呢,这时候奇迹出现了,视频出来了,而且也米有崩溃!
经验教训:要想使一个线程完完全全地正常工作起来,最好是完完全全地拥有一份数据!