Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 如何在生产者队列消费模式中获得结果_Multithreading_Producer Consumer - Fatal编程技术网

Multithreading 如何在生产者队列消费模式中获得结果

Multithreading 如何在生产者队列消费模式中获得结果,multithreading,producer-consumer,Multithreading,Producer Consumer,我经常使用(多)生产者队列消费设计模式,但我不知道如何获得操作的结果 我有3个生产者P1,P2,P3,它们产生一个消息IMessage;此消息在同步队列中发送,并由Cosumer详细说明 消费者C如何告知生产者(P1或P2或P3)请求已完成并给出结果 一种异步方式是消费者在消息完成后将消息排队返回其生产者。消息可以包含结果成员(和/或消息处理期间可能引发的任何异常对象或错误消息)。另一种可能是生产者只是等待一些sychro对象,该对象也与消息一起排队。消费者在完成时发出信号。生产者可以通过消费者

我经常使用(多)生产者队列消费设计模式,但我不知道如何获得操作的结果

我有3个生产者P1,P2,P3,它们产生一个消息IMessage;此消息在同步队列中发送,并由Cosumer详细说明


消费者C如何告知生产者(P1或P2或P3)请求已完成并给出结果

一种异步方式是消费者在消息完成后将消息排队返回其生产者。消息可以包含结果成员(和/或消息处理期间可能引发的任何异常对象或错误消息)。另一种可能是生产者只是等待一些sychro对象,该对象也与消息一起排队。消费者在完成时发出信号。生产者可以通过消费者在处理消息时调用的“OnCompletion(message*thisMessage)”函数/事件/委托加载消息来支持这两种方案

哪种语言?还有,为什么生产者需要知道消费者的结果?只要队列里有空间,制作人就应该生产。我是C++编程语言。我必须实现一个系统,其中有许多对象需要在单个rs232串行端口上轮询其他设备。一种方法是锁定写/读操作。我之所以对生产者-消费者模式进行排序,是因为这是一种简单的方法。与直接锁定方案相比,排队请求/响应对象/结构/消息通常更易于总体管理(而且也更易于调试,因为只有一个线程与串行端口交互)。