名前付きパイプ インスタンス

最も単純なパイプ サーバーは、パイプの単一インスタンスを作成し、1 つのクライアントに接続し、クライアントと通信し、クライアントから切断し、パイプ ハンドルを閉じて終了します。 ただし、パイプ サーバーが複数のパイプ クライアントと通信する方が一般的です。 パイプ サーバーでは、1 つのパイプ インスタンスを使用して、各クライアントに順番に接続して切断することで、複数のパイプ クライアントと接続できますが、パフォーマンスは低下します。 複数のクライアントを同時に効率的に処理するには、パイプ サーバーで複数のパイプ インスタンスを作成する必要があります。

複数のパイプ インスタンスにサービスを提供するための 3 つの基本的な戦略があります。

マルチスレッド パイプ サーバーは、各インスタンスのスレッドが 1 つのパイプ クライアントの通信を処理するため、書き込みが最も簡単です。 システムは、必要に応じて各スレッドにプロセッサ時間を割り当てます。 ただし、各スレッドはシステム リソースを使用します。これは、多数のクライアントを処理するパイプ サーバーの欠点です。

シングルスレッド サーバーを使用すると、複数のクライアントに影響を与える操作を調整しやすくなります。また、複数のクライアントによる同時アクセスから共有リソースを保護する方が簡単です。 シングルスレッド サーバーの課題は、クライアントの同時ニーズを処理するためにプロセッサ時間を割り当てるために、重複する操作を調整する必要があるということです。