gpt4 book ai didi

使用命名管道和信号量在两个进程之间进行通信

转载 作者:行者123 更新时间:2023-11-30 19:49:45 24 4
gpt4 key购买 nike

我正在尝试在两个进程之间进行通信(例如聊天室)。每个进程都有自己打开的终端窗口。我使用命名管道进行通信。

这就是我所做的:

我有一个名为“MYFILE”的 FIFO_FILE。进程 A 将新行写入 MYFILE,进程 B 从 MYFILE 读取并将该行输出到进程 B 的终端显示。但是,如果进程 B 想要向 MYFILE 写入新行,(根据我对信号量的理解)进程 A 将被阻止读取/写入 MYFILE,直到进程 B 完成写入。

我想要实现的是:当两个进程想要写入时,当其他进程先于写入文件时,任何进程都不应该被阻止。

我能想到的唯一方法是有两个 FIFO_FILE。但如何实现这个实现呢?或者还有其他方法可以实现吗?

我被告知使用消费者-生产者模式,但我不知道这将如何解决我的问题。

任何帮助都会很棒。谢谢!!

最佳答案

建议 - 你真的不需要带有命名管道的信号量,是吗?

只要你想写就可以,在大多数情况下,你会阻塞直到有东西可读。

以下是在 Linux 上将命名管道与 shell 脚本结合使用的一些简短教程:

关于使用命名管道和信号量在两个进程之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958438/

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