1
resposta

Utilização do método join()

Pessoal, não seria melhor utilizarmos o método .join() na threadRecebeResposta ? Digo isso, pois o último passo da aplicação seria receber uma resposta do servidor ao comando enviado. Condicionando a main thread ao envio do comando "threadEnviaComando.join()", poderemos fechar o socket antes mesmo do servidor devolver uma resposta. É isso mesmo ?

Trecho do código: (aula "Melhorando o cliente")

*// ...
    threadRecebeResposta.start();

    threadEnviaComando.start();

    threadEnviaComando.join();

    System.out.println("Fechando o socket do cliente");

    socket.close();

Obrigado!

1 resposta

Olá Lucas, tudo bem?

Sim, você está correto! Utilizar o método .join() na threadRecebeResposta é uma boa prática para garantir que a aplicação aguarde a resposta do servidor antes de fechar o socket. Isso evita que a conexão seja encerrada antes da resposta ser recebida, o que poderia causar problemas na execução do programa.

O método .join() é utilizado para aguardar a finalização de uma thread antes de continuar a execução do programa. No seu caso, o método .join() na threadEnviaComando garante que a threadRecebeResposta só será iniciada após o envio do comando, e o método .join() na threadRecebeResposta garante que a aplicação aguarde a resposta do servidor antes de fechar o socket.

Espero ter ajudado e bons estudos!