Dada a questão: O que acontece quando criamos um newFixedThreadPool
limitado a 4 threads, quatro clientes se conectam ao servidor e após um período de tempo um quinto cliente se conecta, sem que antes nenhum dos anteriores tenha saído ?
A resposta correta é: Ele fica bloqueado até alguns dos clientes atuais liberar uma thread para ser utilizada.
Porém ao simular este comportamento, notei que o processo mais recente criado antes é encerrado, com esta descrição:
Process finished with exit code 130 (interrupted by signal 2:SIGINT)
Estou utilizando o Intellij e pinnando três consoles para os clientes e um para o servidor. Coloquei o número fixo de 2 threads para o pool de threads.
Observei que este comportamento deve ser referente à alguma configuração ou limitação do Intellij! Logo, fiz novamente, porém limitando a 1 thread e testando duas conexões e funcionou conforme o esperado...