Como fazer para "pausar" a execução de um programa java e depois voltar a executar?

Estou fazendo um programa java que simula um algoritmo e gostaria de colocar dois botões, um que pausasse a simulação e outro pra continuar… tentei usar alguns métodos da classe Thread mais não tive sucesso… alguém pode me ajudar?
OBS: só irei usar uma thread

tentei criar algo como:

[code] private class MyThread extends Thread {
boolean esperar = false;

    // é chamando quando a Thread é iniciada
    @Override
    public void run() {
        while(true) {
            // verificar se Thread deve esperar
            synchronized(this) {
                while(esperar) {
                    try {
                        wait();
                    } catch(Exception e) {
                        //
                    }
                }
            }
            // processamento
        }
    }
}

public void pausar() {
    synchronized(thread) {
        thread.esperar = true;
    }
}

public void continuar() {
    synchronized(thread) {
        thread.esperar = false;
        thread.notify();
    }
}[/code]

e usaria os 2 metodos dentro de outra classe, mas nao funciona

ninguém? :frowning:

tentar usar o método join(); da classe thread, só dá uma olhada na documentação do java!!!

Ué, por que não funciona?

Deveria funcionar sim. Mas claro, você tem que colocar o seu processamento condicionado a esses métodos (processar um pouquinho e testar com aquele while, processar mais um pouquinho, testar aquele while).

Não tem um jeito de simplesmente “pausar” uma thread.

não seria eu colocar o método “pausar()” dentro do meu método que eu quero que pause? :S não funcionou

Bom, acho que esta faltando vc dar um notify dentro do método pausar.
Editado : bom li com pressa e me enganei, ignore o que eu disse, parece estar tudo ok mesmo.

como eu poderia usar os métodos pausar() e continuar() dentro de outro método?
não seria só dar um start na thread dentro do método?