Udostępnij przez


Wystąpienia nazwanego potoku

Najprostszy serwer potoku tworzy pojedyncze wystąpienie potoku, łączy się z jednym klientem, komunikuje się z klientem, rozłącza się z klientem, zamyka uchwyt potoku i kończy. Jednak częściej serwer potoku komunikuje się z wieloma klientami potoku. Serwer potoku może używać pojedynczego wystąpienia potoku do nawiązywania połączenia z wieloma klientami potoku, łącząc się z każdym klientem i odłączając się od każdego klienta w sekwencji, ale wydajność byłaby niska. Serwer potoku musi utworzyć wiele wystąpień potoku, aby efektywnie obsługiwać wielu klientów jednocześnie.

Istnieją trzy podstawowe strategie obsługi wielu wystąpień potoku.

Serwer potoków wielowątkowych jest najłatwiejszy do zapisu, ponieważ wątek dla każdego wystąpienia obsługuje komunikację dla pojedynczego klienta potoku. System przydziela czas procesora do każdego wątku zgodnie z potrzebami. Jednak każdy wątek używa zasobów systemowych, co jest wadą serwera potoku, który obsługuje dużą liczbę klientów.

W przypadku serwera jednowątkowego łatwiej jest koordynować operacje wpływające na wielu klientów i łatwiej jest chronić zasoby udostępnione przed równoczesnym dostępem wielu klientów. Wyzwaniem serwera jednowątkowego jest to, że wymaga koordynacji nakładających się operacji w celu przydzielenia czasu procesora do obsługi równoczesnych potrzeb klientów.