Да, вы можете, но я думаю, что это будет сложнее.
Если вы используете java.net.ServerSocket , то каждый клиент принимает:
Socket client = server.accept();
Будет иметь свой собственный поток, так что вам больше ничего не нужно делать.
Есть ли реальная потребность в едином потоке для всех клиентов или это просто то, что, по вашему мнению, могло бы помочь.
В последующем это может вызвать больше проблем, чем решить.