create_message_queueT_create_message_queueCreateMessageQueueCreateMessageQueuecreate_message_queue创建消息队列(算子)
名称
create_message_queueT_create_message_queueCreateMessageQueueCreateMessageQueuecreate_message_queue — 创建一个新的空消息队列。
签名
def create_message_queue() -> HHandle
描述
create_message_queuecreate_message_queueCreateMessageQueueCreateMessageQueueCreateMessageQueuecreate_message_queue 函数创建一个新的空消息队列。输出参数 QueueHandleQueueHandleQueueHandleQueueHandlequeueHandlequeue_handle 是新创建消息队列的句柄,用于在后续调用使用该队列的算子时识别队列。
消息队列采用 FIFO 管道设计,可在不同线程间安全传递任意数据集。 队列访问在内部实现完全同步,应用程序无需显式加锁。数据通过称为消息的载体在队列中传输(参见 create_messagecreate_messageCreateMessageCreateMessageCreateMessagecreate_message)。
多个生产者线程可同时追加数据(enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message),同时多个消费者线程可并行提取数据(dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessagedequeue_message)。单次 enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message 操作可批量入队多条消息。此时这些消息将以队列为载体同步传输,并通过单次 dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessagedequeue_message 调用完成交付。
所有入队消息均由
enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message 操作进行复制。因此,在调用 enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message 后,原始消息可立即被重复使用,而不会影响队列中的副本。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
参数
QueueHandleQueueHandleQueueHandleQueueHandlequeueHandlequeue_handle (输出控制) message_queue → HMessageQueue, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
新创建的消息队列句柄。
元素数量:
QueueHandle == 1
断言:
QueueHandle != 0
示例(HDevelop)
create_message_queue (ProducerQueue)
create_message_queue (ResultQueue)
* ...
结果
除非发生资源分配错误,否则返回 2 (H_MSG_TRUE)。否则将抛出异常。
可能的后继
enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message,
dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessagedequeue_message
另见
clear_message_queueclear_message_queueClearMessageQueueClearMessageQueueClearMessageQueueclear_message_queue,
enqueue_messageenqueue_messageEnqueueMessageEnqueueMessageEnqueueMessageenqueue_message,
dequeue_messagedequeue_messageDequeueMessageDequeueMessageDequeueMessagedequeue_message,
set_message_queue_paramset_message_queue_paramSetMessageQueueParamSetMessageQueueParamSetMessageQueueParamset_message_queue_param,
get_message_queue_paramget_message_queue_paramGetMessageQueueParamGetMessageQueueParamGetMessageQueueParamget_message_queue_param,
create_messagecreate_messageCreateMessageCreateMessageCreateMessagecreate_message,
clear_messageclear_messageClearMessageClearMessageClearMessageclear_message,
set_message_tupleset_message_tupleSetMessageTupleSetMessageTupleSetMessageTupleset_message_tuple,
get_message_tupleget_message_tupleGetMessageTupleGetMessageTupleGetMessageTupleget_message_tuple,
set_message_objset_message_objSetMessageObjSetMessageObjSetMessageObjset_message_obj,
get_message_objget_message_objGetMessageObjGetMessageObjGetMessageObjget_message_obj
模块
基础