Многопоточность .. клиент сокет? Это не имеет смысла. Один сокет - это поток данных, вы не можете распараллелить потоки сокетов, как это.
Конечно, вы можете создать приложение, которое открывает 5 отдельных соединений (возможно, все к одному и тому же серверу, что было бы хорошо). ) и обрабатывает эти 5 отдельных соединений, каждое из которых состоит из одного потока байтов «от клиента к серверу» и одного потока байтов «от сервера к клиенту», используя 5 отдельных потоков.
Но вы можетене пишите приложение, которое имеет одно соединение, а затем пытается обработать это соединение, используя 5 потоков.
Возможно, вы имели в виду server socket. Для серверных сокетов вы создаете один объект ServerSocket
. Один поток вызывает для него метод accept
(который ожидает подключения клиента, устанавливает соединение, а затем передает вам объект Socket
, представляющий одно соединение, вместе с двумя потоками, которые формируют это соединение). Затем вы можете создать новый поток (или извлечь поток из пула потоков, что обычно является лучшим способом сделать это), передать ему сокет и позволить ему обработать этот сокет. Таким образом, вы можете иметь, скажем, 50 потоков, каждый из которых обрабатывает один сокет: теперь ваш сервер может работать с 50 клиентами, подключенными одновременно.