Bloquear todas Threads

3 respostas
D

Tenho um programa de um Framework fechado que estou com um cenario onde preciso executar uma funcionalidade minha mas colocar em espera todos as outras threads. Pois senão uma destas threadas executa algo antes que atrapalha o meu processamento.
Gostaria de saber se é possivel eu colocar todas as outras threadas do sistema em espera, mas como citei, o framework é fechado, portanto não sei qual objeto colocar em espera, por isso gostaria de saber se é possivel algo como um waitAll.

Obrigado.

3 Respostas

tveronezi

O que esse framework altera? Alguma classe tua? Registro no banco de dados?
Se for alguma classe tua, vc pode controlar o acesso nessa classe.
Se for o banco de dados, vc deverá pesquisar o que o teu banco pode oferecer (pesquise por “concurrency”)

tveronezi

Ah… se alterar um objeto em comum vc pode user um block sincronizado.

public void teuMetodo(){
  synchronized(objetoEmComum){
    // TODO: teu código aqui
  }
}
sergiotaborda

ddducceschi:
Tenho um programa de um Framework fechado que estou com um cenario onde preciso executar uma funcionalidade minha mas colocar em espera todos as outras threads. Pois senão uma destas threadas executa algo antes que atrapalha o meu processamento.
Gostaria de saber se é possivel eu colocar todas as outras threadas do sistema em espera, mas como citei, o framework é fechado, portanto não sei qual objeto colocar em espera, por isso gostaria de saber se é possivel algo como um waitAll.

Obrigado.

Isto não pode ser feito. O objetivo de usar threads é paralelismo.Se vc que sequencia , então não use Threads.
Um opção é esperar que todas as threads terminem ou usar frameworks mais modernos como Executor ou Fork/join onde vc tem mais controle sobre se um trabalho já terminou ou não.

Mas se for uma coisas temporizada, tá com azar.

Criado 12 de dezembro de 2012
Ultima resposta 12 de dez. de 2012
Respostas 3
Participantes 3