我正在尝试在两个进程(如聊天室)之间进行通信。每个进程都有自己的终端窗口打开。我正在使用命名管道进行通信。
这是我所做的:
我有一个名为“MYFILE”的 FIFO_FILE。进程 A 向 MYFILE 写入一个新行,进程 B 从 MYFILE 中读取并将该行输出到进程 B 的终端显示器。但是,如果进程 B 想要向 MYFILE 写入新行,(根据我对信号量的理解)进程 A 将被阻止读取/写入 MYFILE,直到进程 B 完成写入。
我想要实现的是:当两个进程要写入时,当其他进程在写入文件之前不应阻塞任何进程。
我能想到的唯一方法是拥有两个 FIFO_FILE。但是如何实现这个实现呢?还是有其他方法可以实现?
有人告诉我使用消费者-生产者模式,但我不明白这将如何解决我的问题。
任何帮助都会很棒。谢谢!!