将循环缓冲区与写入和读取操作同步,而不进行锁定

时间:2017-08-18 21:17:45

标签: c multithreading locking buffer circular-buffer

我有一个循环缓冲区,可以存储图像帧,比如30帧,并且有一个线程可以自己写入缓冲区。有一个主线程从缓冲区读取数据并将数据复制到另一个缓冲区。

问题是我无法将循环缓冲区与写入和读取操作同步。我无法锁定循环缓冲区,因为写操作是由我没有访问权限的线程完成的。

有没有办法从主线程检查主线程正在读取的帧是否被覆​​盖?

1 个答案:

答案 0 :(得分:0)

您的设计灵活吗?如果是,那么使用Paging的概念,这在循环缓冲区问题中总是有用的。请提及您的设计,以便人们可以帮助您。

否则,您可能正在使用时间戳在缓冲区中编写帧,因此请使用它来验证帧是否被覆​​盖。

抱歉! " StackOverFlow",我违反了你的规则"避免在答案中要求澄清"我这样做是因为我无法对这个问题发表评论,因为我没有" #34; 50声望"。