1
配管中に面白い問題が発生しました。パイプの間で非同期の動作をエミュレートしたいとします.1つの親プロセスと複数の子プロセスがあります。親プロセスと子プロセスはお互いに話すことができます。しかし、私が遭遇したことは、これまでのところ通信が原子的であることです。それはいくつかの計算をし、私はすべての子供たち パイプによる非同期動作の実現
- 1.最初に作成している場合ということですか何とは
- 4.親はその子が
fork()
にもう一度子供にこれを扱うことである。しかし、これは問題を他のどこかに移しているだけです。これは私の設計上の問題だと思いますが、1つのプロセス内のコードが一度に2つの場所になければならないため、不可能と思われます。 (すなわち、子に
reading
と
writing
のデータです)。この方法でパイプのみを使用して「真の」非同期動作を設計する際のベストプラクティスまたはヒントを教えてください。
あなたの正確な関心事が何であるかは不明です。 "パイプが子供の一人を親に詰めることができます"。それは事実ですが、それがなぜあなたにとって問題であるのかを述べる必要があります。パイプがいっぱいになると、子プロセスは 'write'呼び出しをブロックします。これは望ましい動作である場合とそうでない場合があります。そうでない場合は、なぜ、どのような行動を達成しようとしているのかを説明する必要があります。あなたが達成しようとしている "非同期"の振舞いに依存して、一般的なテクニックは、 'select'や' poll'やスレッドを使ってIO多重化を使うことです。 – kaylum