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
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.
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
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 .