数据总是保存到加锁的多线程共享队列中的,关键是线程B要怎么编写,线程B应该采用等待信号量的方式,那么线程B可以在1微秒之内完成从共享队列取走数据,那么就不会影响线程A的运行。
建议编程思路:
线程A:接收数据--》进入临界区--》保存数据到共享队列--》离开临界区--发信号量让线程B处理数据
线程B:线程B本身是个死循环等待线程A的发信号量程序,所以线程B的处理流程应这样:等待线程A的需要处理数据信号量--》进入临界区--》取走所有的共享队列数据(此时不处理数据)--》离开临界区--》处理拿到的所有共享队列数据--》重新循环等待线程A的需要处理数据信号量
如果按照上面的多线程思路,那么你的处理数据都是微秒级完成的,数据的处理延迟也是微秒级完成的