Tô querendo saber se tem como eu associar uma thread a um método.
Exemplo:
Uma classe que no método main() dispare duas threads e na sequência execute um for(…), só que essas duas threads utilizam variáveis globais que o main() também usa. queria saber se tem como eu disparar essas threads cada uma iniciando um certo método que está na mesma classe do main()
Tô querendo saber se tem como eu associar uma thread a um método.
Exemplo:
Uma classe que no método main() dispare duas threads e na sequência execute um for(…), só que essas duas threads utilizam variáveis globais que o main() também usa. queria saber se tem como eu disparar essas threads cada uma iniciando um certo método que está na mesma classe do main()
Valeu!!![/quote]
kra, vc ta com a mesma duvida q eu tava a algumas horas atraz
bom, eu n sei c tem um metodo “pratico” para isso, oq eu fiz pra conseguir resolver foi criando classes internas q extendam threads, assim vc cria elas, e manda executar, exemplo:
public class MinhaClasse {
private String mensagem = "olaa";
private int loopqtd = 1000;
public iniciar() {
class MinhaSubClasse extends Thread {
public void run() {
for(int i = 0; i < loopqtd, i++) {
System.out.println(i + " " + mensagem);
}
}
}
new MinhaSubClasse().start();
}
public static void main(String[] args) {
new MinhaClasse().iniciar();
}
}
escrevi o codigo agora, entao n testei, mas a logika eh essa ai
Em algoritmo existe uma chamada down(nome_semaforo) que realiza a exclusão mútua do threads. Esse semaforo é um inteiro que não pode ser negativo. A cada chamada down() ele é decrementado até bloquear a thread.
No código que eu mandei existe um for() no construtor da classe principal, e dentro tem um bloco synchronized que toma posse do semáforo “sem”. Só que na segunda vez do loop é pra essa thread bloquear pq esse “sem” ficaria negativo. Mas em java não sei como faz isso!