Tenho 3 classes, uma é o servidor e as outras duas cliente e estou trabalhando com sockets.
O servidor vai distribuir a mesma tarefa para os clientes, isso por meio threads.
Porém estou com um problema, quando executo o cliente1 e logo depois executo o cliente2, o que era para ser distribuído entre os dois clientes, é tudo feito no cliente1, e o cliente2 não faz nada.
Como é por meio de threads, estive pensando se tem uma forma de aguardar um tempo e depois recomeçar de novo a execução, porque estou achando que o cliente2 não faz nada, pelo fato de até ele conectar com o servidor dá tempo do cliente 1 fazer tudo sozinho.
Resumindo, o que eu queria, era aguardar as duas classes se conectarem ao servidor, para depois retomar a execuçãodas duas threads, tem como fazer isso?
Gratos
Cara, posta o teu codigo ai pra gente dar uma olhada…
ok?
Até mais …
I
inicjava
xii cara, o problema é que eu não estou com o código neste pc
Mas, só fala, tem alguam forma de parar a execução de uma thread e retomá-la novamente? Já vi algo como wait(), mas não sei se é para isso q serve.
Foi mal pessoal, devia ter trago o código comigo…
nbluis
Hahahah, essa foi muito boa…
Cara, acho tu acabou de tocar no ponto mais delicado do java…
Para uma Thread e depois reinicia-la.
Tem várias maneiras, porem se for ler a documentação sobre elas todas indicam que não é aconselhavel usa-las, pois não é confiável que a JVM irá retomar o processamento dela, eo que é pior, que a JVM não conseguirá mais desalocar a Thread.
Uma vez passei por um problema que tive que utilizar algo assim, o que fiz foi criar na minha classe uma flag que indica se o processo deveria continuar, e em varias partes do codigo eu testava essa flag. Acho que não foi uma boa pratica, mas tudo bem.
Te aconselho a repensar sua estrutura, de maneira que nao necessite disso.
Blza.
Valeu…
I
inicjava
Entendi, tinha pensado em flags tb, acho q vou ter q acabar usando, pq não consegui pensar uma outra forma de distribuir as tarefas, saca?
Vou ver o q faço, mas de qlquer forma vlw
No teu caso, você está querendo implementar uma barreira. Dê uma olhada nas classes Barrier e CountDownLatch do java 5, que devem te ajudar.
nbluis
Pois é, tem como.
Mas apenas implementando isso dentro da Thread.
Digo não viável quanto a ter uma instancia Thread e querer dar um stop e depois um restart nela.
Dai fica dificil.
Mas muito boa pratica apresentada pelo nosso amigo ViniGodoy .