下位レベルのアプリケーションがデータを受信するときに常にコールバック RecData(char *buf) を呼び出すアプリケーションを使用しています。
コールバックでは、2 つのスレッドを作成し、これらの作成されたスレッドにそれぞれ消費者関数と生産者関数を渡します。
私のコード:
void RecData (char * buf) {
CreateThread(NULL,0,producer_queue,(void *)buf,0,NULL);
CreateThread(NULL,0,consumer_queue,NULL,0,NULL);
}
上記は、一度に 1 つのデータを受け取るときに機能します。ほぼ同時に 5 つのデータを受信した場合、producer_queue は最初にすべてのデータをキューに入れ、次に consumer_queue がデータの取得を開始する必要がありますが、ここでは Producer_queue が最初のデータをキューに入れるとすぐに、consumer_queue がそれを取得します。