Uma sugestão:

Faça uma subclasse da classe Thread, por exemplo:

public class SubThread extends Thread {
    private boolean trabalhando = true;

    public void finalizar() {
        trabalhando = false;
    }

    public void run() {
        while (trabalhando) {
            acao();
        }
    }

    public void acao() {
        //Este método devera ser sobrescrito
    }
}

Assim quando for criar uma Thread voce pode extender a classe SubThread ao inves de Thread, e implementar o método acao() ao invez do método run(), quando for necessário parar a thread, basta chamar o método finalizar() para finalizá-la com segurança.

Se gostares da idéia, agora é só uma questão de adaptar a idéia ao seu projeto.

Espero ter contribuído de qualquer forma.
[]s

Carlos H.

Mário Roberto Porto Filho wrote:
Pessoal........
Como eu faria para terminar um thread que esta implementando um socket ouvinte....(servidor)
Eu pensei em variável compartilhada mas o thread ficará parado no accept() e não iria dar certo.
 
-----------------------------------------------------------------
Ex:
ServerSocket skServer;
...
...
new ThreadServerChild(skServer.accept()).start();    // O Thread vai ficar parado aqui, ouvindo em uma porta
-----------------------------------------------------------------
Obs: ThreadServerChild é um outro thread que cuidará da conexão para que o servidor possa ser multi-thread !!!
 
Como eu faço para terminar este Thread(Servidor) através de um clique de mouse por exemplo ?
Qual a melhor saída ?
 
Obrigado
 

-- 
/**
 * [Carlos H.] - [EMAIL PROTECTED]
 * Núcleo de Informática UNERJ - Centro Universitário de Jaraguá do Sul
 * 
 * "O Sábio fala pouco do que muito sabe
 *	O Tolo fala muito do que pouco sabe..."
 */





Responder a