2つのプロセス(チャットルームなど)間で通信しようとしています。各プロセスには、独自のターミナルウィンドウが開いています。私は通信に名前付きパイプを使用しています。
これが私がしたことです:
「MYFILE」という名前のFIFO_FILEがあります。プロセスAはMYFILEに新しい行を書き込み、プロセスBはMYFILEから読み取り、その行をプロセスBの端末表示に出力します。ただし、プロセスBがMYFILEに新しい行を書き込みたい場合(セマフォについて私が理解していることから)、プロセスBが書き込みを完了するまで、プロセスAはMYFILEへの読み取り/書き込みをブロックされます。
私が達成したいのは、2つのプロセスが書き込みを行う場合、他のプロセスがファイルへの書き込みの前にあるときに、プロセスがブロックされないようにすることです。
私が考えることができる唯一の方法は、2つのFIFO_FILEを持つことです。しかし、この実装を実現するにはどうすればよいでしょうか。または、達成する他の方法はありますか?
消費者-生産者パターンを使用するように言われましたが、これで問題がどのように解決されるかわかりません。
どんな助けでも素晴らしいでしょう。ありがとう!!