Como desenvolver esse algoritmo usando threads?

1 resposta
FightSurf_George_Mai

Bom dia pessoal. Não estou conseguindo visualizar a lógica para desenvolver o algoritmo deste problema. Todas as sugestões serão muito bem vindas.

Tenho inicialmente duas classes: GUI herdando de Jframe contendo uma caixa de texto e uma outra classe SEARCH que possui um método principal retornando uma string de uma determinada pesquisa.

Tenho também uma outra classe PRINCIPAL responsável por ordenar todas as funções instanciadas das duas classes anteriores: SEARCH e GUI. (SEARCH me dá e o restultado e coloco em GUI através de PRINCIPAL)

Questão: Como eu poderia fazer para o resultado do método de pesquisa dentro de SEARCH fosse executado sempre (loop infinito) e colocado este resultado dentro da caixa de texto de GUI podendo em paralelo ser executada outras funções do programa?

Eu gostaria que SEARCH não fosse herdado de Thread pois também será possível executá-la somente uma vez, em determinadas opções do programa.

Um forte abraço a todos.

1 Resposta

maior_abandonado

olha kra, eu tb sou meio novato, não sei se esse jeito que eu faço é o melhor, nunca peguei codigos de outras pessoas usando thread para ver como fazem mais…

depois que eu comecei a ficar um pokinhu melhor em thread, coisa que ainda nao so la mto experiente, comecei a fazer ± o seguinte:

public void run(){

      String nome = Thread.currentThread().getName();

      if ( nome.equals( "processamento1" ) )
            ExecutaProcessamento1();
      else if ( nome.equals( "processamento2" ) )
            ExecutaProcessamento2();     

      //... e pro ai vai
}

public void ExecutaProcessamento1(){
//.. faz o que a thread1 tem q fazer
}

public void ExecutaProcessamento2(){
//.. faz o que a thread2 tem q fazer
}

no começo eu dexava tudo dentro do metodo run, ele que mexe com as thread… depois de algum tempo comecei a ver a dificuldade que é ler esse codigo, sabendo em detalhes em que thread que ta, coisa do tipo…por isso separei em metodos…

em janelas eu costumo dexa o matisse cria a janela na thread principal, e fazer o processamento por baxo dos panos (no seu caso o seach) em um desses metodos… mais vc tb poderia mudar isso, iniciando as thread do jeito que vc quiser la no main, uma delas chamando o metodo initComponents, outro o search…e por ai vai… isso nao vai atrapalha o processamento do resto do programa mais nao se esqueça de colocar um ou mais thread.sleep em uma ou mais partes desse seu loop infinito…senao sua CPU vai a 100%…

Criado 17 de abril de 2008
Ultima resposta 17 de abr. de 2008
Respostas 1
Participantes 2