Mam aplikację serwera (TCP) wielowątkowego. Wątek główny programu odpowiada za obsługę obiektu serwera TCP oraz za trzymanie danych aplikacji. Wątki klientów - jak łatwo domyślić się - obsługują klientów TCP i ewentualnie modyfikują stan danych w wątku głównym.
Problem zaczyna się tutaj. Połączonych klientów może być powiedzmy 10 000 (hipotetycznie, ale zastanówmy się nad wartością ekstremalną). Oznacza to 10 000 wątków (!) klientów, a przy takiej liczbie ich synchronizowanie (w celu modyfikowania danych albo w celu sprawdzenia czy ktoś inny zmodyfikował) chyba mija się z celem. W jaki sposób efektywnie (!) przekazywać dane między wątkami klientów a wątkiem głównym? Samo przekazanie nie jest trudne w jakikolwiek sposób, ale jaki, waszym zdaniem, będzie w takich warunkach najszybszy - jest to tu sprawa priorytetowa.
Myślałem nad potokami nienazwanymi, ale czy ilość 10 000 nie będzie w jakikolwiek sposób problemem - również ze względu na ograniczenia otwartych uchwytów? Synchronizowanie - czyli tak, jak to działa obecnie - nie wydaje mi się sensownym wyjściem.