gpt4 book ai didi

c - 进程间共享数据队列

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:35 24 4
gpt4 key购买 nike

我有一个 C 程序,目前使用多线程来处理数据。我为生产者线程使用 glib GAsyncQueue 将它们的数据发送到消费者线程。现在我需要将线程移动到独立的进程中,我不确定如何继续在它们之间推送数据。使用管道似乎不太适合我的任务,因为推送的数据量相当大。另一种选择是获得一 block 共享内存,但由于计算共享数据量的上限有点困难,因此这种选择缺乏吸引力。

您知道可以与多个进程一起使用的类似 GAsyncQueue 的东西吗?由于我已经在使用 glib,所以我更喜欢使用它的功能,但如果其他库提供我需要的功能,我愿意使用它们。

最佳答案

POSIX 指定了一个msgsnd(2)msgget(2) 接口(interface),尽管消息和队列的大小可能比您希望的要小。 (Linux 允许您使用 /proc/sys/kernel/msgmax/proc/sys/kernel/msgmnb 可调文件修改大小;默认值为 8k 和 16k .)

由于消息总线是一种相当普遍的需求,您可能希望选择类似 RabbitMQ 的东西,它提供了对多种语言的预写绑定(bind),并可能使 future 的开发更加容易。

关于c - 进程间共享数据队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10543293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com