1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Threads in Java

Discussão em 'Programação' iniciada por j0keR, 17 de Junho de 2007. (Respostas: 8; Visualizações: 1153)

  1. j0keR

    j0keR Power Member

    Boas pessoal,

    é possível criar uma Thread sem ser a um objecto!? Tipo..criar uma Thread a um método de uma classe?

    Cumprimentos
     
  2. HecKel

    HecKel The WORM

    Porque não crias thread à própria classe e executas esse método na thread normalmente?

    abraços, HecKel
     
  3. j0keR

    j0keR Power Member

    Desde já obrigado pela ajuda HecKel...

    O que tas a dizer é isto?

    public void run() {
    Método();
    Interface();
    }

    Bem o que eu queria mesmo era que o método fosse executado "por trás" do interface gráfico de x em x segundos e desta forma não sei como fazer pois se fizesse um ciclo para o Método() o Interface() sairia prejudicado!?

    Cumps
     
  4. É para isso mesmo que servem as threads!

    Crias por exemplo mais uma classe para fazer aquilo que pretendes.


    public class ThreadActualizadora extends Thread {
    }


    Colocas aquilo que pretendes fazer no metodo run() dessa classe
    usa o sleep() por exemplo


    Depois na tua classe principal crias uma instancia (que irá ser uma thread) dessa classe



    ThreadActualizadora threadActualizadora = new ThreadActualizadora();
    threadActualizadora .start();
    o teu codigo continua a correr

    neste momento o teu "programa" continua a execucao e a thread está a correr por trás
    Tens de ter em atencao os acessos simultaneos que podem ocorrer a dados por parte de varias threads.
    faz pesquisa por synchronized


    tens de mandar terminar a thread no fim da execucao do teu programa
     
  5. muddymind

    muddymind 1st Folding then Sex

    Como é em java ele pode usar monitores... é bem mais facil coordenar as "racing conditions"...
     
  6. j0keR

    j0keR Power Member


    Isso é o que tenho vindo a fazer..Criar Threads a alguns Objectos.

    Não queria utilizar uma classe apenas para executar aquele método, pois não sao mais do que duas ou três linhas de código.. E penso que não se justifica.

    Queria utilizar alguma coisa do genro do fork(). Criar um processo filho para executar o Método() enquanto o processo Pai tratava do resto. Sabem como fazer isso pessoal?

    Cumprimentos
     
  7. legerdemain

    legerdemain Power Member

    se não queres ter um ficheiro e definir uma classe à parte podes utilizar a técnica da classe anónima

    Código:
         no meio da tua classe principal
         ...
         Thread t = new Thread(new Runnable() {
              public void run() {
                   System.out.println("ola mundo, etc");
              }
         });
         t.start();
         ...
    
     
  8. muddymind

    muddymind 1st Folding then Sex

    Era isso mesmo q ia postar agora (embora não programe mt em java, sabia q o processo era o mesmo do congénere c# q é a linguagem que mais tnh usado recentemente...)

    No entato fica um aviso... numa aplicação grande (e normalmente distribuida por vários programadores) isso nunca deve ser usado pois pode criar conflitos difíceis de detectar/corrigir...

    []
     
  9. j0keR

    j0keR Power Member

    Boas pessoal,

    ainda não testei mas penso que isso resolve o meu problema. Muito obrigado pela ajuda pessoal!

    Cumprimentos
     

Partilhar esta Página