2

poll()ループで呼び出すスレッド A があります。このスレッドは、着信および発信接続の IO を担当します。ただし、スレッド B が発信接続を開いている場合は、何らかの方法でそれを A に渡す必要があります。スレッドA(読み込み側)とスレッドB(書き込み側)の間に、ソケットを開いた後にBが書き込むパイプを持たせた方が良いと思いますか?

4

2 に答える 2

4

それは合理的に聞こえます。pollソケットの横にあるパイプを見て満足するはずです。

于 2012-04-23T18:32:04.987 に答える
1

実際のパイプではなく、ソケット ペアを使用して調べることができます。unix ドメインソケット ペアを作成し、send()またはを使用してブロックされたスレッドにメッセージを送信できますsendmsg()。このアプローチは、より便利な場合があります。Unix ドメイン ソケットは、プロセス間でのファイル記述子の受け渡しもサポートしていますが、これはアプリケーションにとってやり過ぎです。

poll()もう 1 つの方法は、シグナルでへの呼び出しを中断することです。この質問を参照してください。

于 2012-04-27T21:29:27.413 に答える