我正在使用一个应用程序,其中较低级别的应用程序在接收数据时总是调用回调 RecData(char *buf)。
在回调中,我创建了两个线程并将消费者和生产者函数分别传递给这些创建的线程。
我的代码:
无效的 RecData (char * buf) {
CreateThread(NULL,0,producer_queue,(void *)buf,0,NULL);
CreateThread(NULL,0,consumer_queue,NULL,0,NULL);
}
当我一次收到一个数据时,上述方法有效。如果我几乎同时收到 5 个数据,那么 producer_queue 应该首先将所有数据放入队列,然后 consumer_queue 应该开始检索数据,但是一旦 producer_queue 将第一个数据放入队列,consumer_queue 就会检索它。