Ola, 

fiz um pequeno exemplo, o qual segue abaixo, demostrando uma forma de
fazer o que voce deseja. Eh algo simples, e com um pouco mais de
pesquisa voce com certeza ira encontrar uma forma mais profissional de
realizar o trabalho, mas ate la, o exemplo deve suprir as suas
necessidades. 
        Vale lembrar que atualmente o metodo stop() da classe Thread esta
depreciado, razao pela qual usamos interrupt() para parar algum Thread.
Se, no exemplo que estou mandando, vc alterar a parte de codigo

        for (int i = 0; i < total && !interrupted() && !need2stop; i++)

para

        for (int i = 0; i < total; i++)

todos os outros threads vao continuar rodando normalmente, ate
terminarem. Faca os testes para comprovar. 

[]'s
Rafael Steil
---
        
class MyThread extends Thread 
{
        private int total;
        private int limite;
        private static boolean need2stop;
        
        MyThread(int t, int l) 
        {
                total = t;
                limite = l;
                need2stop = false;
        }

        public void run() 
        {
                try {
                        System.out.println("Thread "+ getName() +" started.");
                        
                        for (int i = 0; i < total && !interrupted() && !need2stop; 
i++) {
                                if (i == limite) {
                                        System.out.println("Thread "+ getName() +" 
finished.");
                                        need2stop = true;
                                        interrupt();
                                }

                                sleep(5);
                        }
                }
                catch (InterruptedException e) {
                        System.out.println(getName() +" got exception\n");
                }
        }
}

public class InterruptThread
{
        public static void main(String args[])
        {
                MyThread t1 = new MyThread(2000, 500);
                MyThread t2 = new MyThread(2000, 500);
                MyThread t3 = new MyThread(2000, 500);

                t1.start();
                t2.start();
                t3.start();
        }
}


On Wed, 2002-07-31 at 02:16, Yvan Almeida wrote:
> 
> Estou fazendo uma busca em arvore usando thread implementando RUNNABLE...
> 
> Cada filho da raiz da arvore � uma thread, gostaria de saber como posso fazer para 
>quando alguma das threads achar o que procuro parar todas as outras e assim retornar 
>o valor imediatamente?
> 
> Consegui criar as threads mas o resultado s� vem quando todas acabam, e isto nao 
>melhora o desempenho...
> 
> Valeu
> 
> YVAN
> 
> *OBS: � minha 1� participa��o na lista...
> 
> 
> ---------------------------------
> Yahoo! PageBuilder - O super editor para cria��o de sites: � gr�tis, f�cil e r�pido.



------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a