Więc mam coś takiego
ConcurrentHashMap<InetAddress, Connection> connections = new ConcurrentHashMap<>();
Mam też wątek z ServerSocket
który nasłuchuje na pakiety. Po adresie pakietu wyszukuję sobie Connection
do której pakiet powinien polecieć
i zostać przetworzony.
Chciałbym teraz zrobić nie tylko otrzymywanie i przetwarzanie pakietów, ale również odsyłanie informacji z powrotem do klientów. Najlepiej by było gdyby program mógł wysłać np 10-15 pakietów na sekundę w miarę równych odstępach czasu do każdego klienta.
Mógłbym skorzystać z intrinsic lock dla mapy connections
ale wtedy przychodzące pakiety mogłyby na chwilę zablokować wątek odpowiedzialny za wysyłanie.
Są jakieś inne sposoby żeby osiągnąć mój cel? Czy ten jest w miarę ok?