基于环形缓冲区的单生产者单消费者模型demo 最近在写一个视频流服务器,有一个环节,需要用到两个线程,一个负责从视频文件解析视频帧,发送到环形缓冲区,另一个线程负责从缓冲区读取视频帧。 难点在于每一视频帧的大小不一样 解决方法是:写线程在发送到缓冲区的视频帧数据前加入该帧长度信息,读取线程只需要进行长度解析,再读取帧数据即可。 这是一个模拟例程 test.png 用于模拟输入的视频,每一帧的长度信息用random()随机生成。 运行 build $ make run $ ./demo clean $ make clean