回调函数中的同步问题

时间:2013-05-20 06:21:33

标签: c linux

在连续循环中扫描条形码,如果扫描有效,则读出/播放文本数据和语音数据,这发生在不同的上下文中。首先进行文本播放,然后执行其回调函数,从那里进行语音播放,然后再进行其回调函数。完成多次扫描时会出现此问题,有时会出现同步问题。当正在进行第一条形码的文本回放时,如果进行了另一次扫描,则播放第二条形码的语音数据(跳过第二条形码的文本回放)。有时只会观察到此行为,因此调试起来很困难。

如何在回调中提供同步?

提前感谢您的帮助。

-Aparna

1 个答案:

答案 0 :(得分:0)

你的问题不是很清楚,所以假设你现在有3个帖子

  1. 从硬件中读取条形码
  2. 显示代码?
  3. 将代码音频播放为条形码中包含的文字
  4. 读取条形码的线程是数据的生产者,应该将工作单元推送到消费者堆栈,并且应该通知堆栈有工作单元。运行粗略的谷歌搜索生产者 - 消费者队列。

    线程2& 3似乎是同步的,应该组合成一个线程?

相关问题