[RESOLVIDO] Thread Básica

7 respostas
D

Estou tentando fazer uma thread simples tentei assim

JAVA CLASS THREAD

package servidorControle;

public class ThreadConecxão extends Thread {

    long minPrime;
    String id;
    ThreadConecxão(String id) {
        this.id = id;
    }

    public void run() {
        int cont=0;
        while (true) {
            cont++;
            System.out.println("Thread "+id+": "+cont);
        }

    }
}

JAVA MAIN

public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                ThreadConecxão Thread1 = new ThreadConecxão("1");
                ThreadConecxão Thread2 = new ThreadConecxão("2");
                Thread1.run();
                Thread2.run();
            }
        });
    }

Percebi que apenas a therad 1 e executada… o que fazer?

7 Respostas

blackfalcon

Bem, nao sei trabalhar com Thread ainda, mas pelo que parece, apenas o id 1 é mostrado, correto?

No metodo main, voce crio dois objetos cada um com seu id. Porem, la no metodo main, voce executa os dois e no primeiro, voce tem um while infinito, ou seja, o segundo objeto nao consegue executar o metodo run.

Bem, nao executei o seu codigo ecomo eu disse, sou iniciante ainda. Vamos ver o que a galera mais avançada diz sobre isso.

Abraços

ctosin

Olá,

Para iniciar uma thread, você deve chamar o método start(), e não o run(). Se você chamar o run(), o código não será executado numa nova thread, mas sim na mesma thread que já está executando na sua aplicação. Do jeito que seu código está, você terá uma execução sequencial.

Abraço

D

Vlw, resolveu mesmo com o start, o bom que o próprio start chama o run, então não tive que mudar o Código interno apenas o da classe principal. vlw mesmo!

blackfalcon

Edita seu primeiro post nesse topico amigo e coloca no assunto [RESOLVIDO], assim, outros nao tentaram te ajudar desnecessariamente, visto que voce ja solucionou o seu problema.

Abraços

ViniGodoy

Olá, por favor, não crie tópicos com o título inteiro em letras maiúsculas. Dificulta bastante a leitura (já pensou se todos resolvem seguir seu exemplo?), além de parecer que você quer chamar mais atenção dos que os demais.

Ao postar códigos, utilize também a tag code:

seu código aqui

Para isso, basta selecionar o trecho de código e apertar o botão code, na barra de ferramentas.

D

ficou assim o main:

public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                ThreadConecxão Thread1 = new ThreadConecxão("1");
                ThreadConecxão Thread2 = new ThreadConecxão("2");
                Thread1.start();
                Thread2.start();
            }
        });
    }
ViniGodoy

Só uma curiosidade? Pq sua thread tem esse nome esquisito:
ThreadConecxão

Ela gerencia uma Conexão?
Evite usar também caracteres com acento na hora de programar. Senão depois vc não poderá reclamar se seu colega de equipe japonês começa a usar kanjis.

Criado 16 de maio de 2010
Ultima resposta 17 de mai. de 2010
Respostas 7
Participantes 4