Olá, eu já havia postado algo parecido aqui no forum e o vinigodoy acabou me auxiliando. Mas agora estou enfrentando um problema na execução de algumas thread. A situação é a seguinte. Eu possuo uma classe gerente que cria uma thread para enviar tarefas para trabalhadores, mas o que acontece é que nem tudo o que é executado na thread A é executado pela thread B e vice-versa. Vejam um exemplo de em um teste de prints que fiz no meu programa.
Worker: worker687 => É UMA THREAD
vou resolver o JOB: job960-B
Worker: worker687 =>
resolvi o JOB: job960-B
Worker: worker687 =>
A nova capacidade eh: 5
O novo workload eh: 0
Worker: worker687 =>
levou : 1ms para executar o JOB: job960-B
Worker: worker687 =>
Vou enviar o resultado do meu JOB: job960-B para meu MANAGER: Manager01
Manager: Manager01
Recebi JOB_RESULT
Worker: worker745 => É UMA THREAD
Recebi Msg. NEW_JOB: job960-A
Worker: worker745 =>
vou resolver o JOB: job960-A
Worker: worker745 =>
resolvi o JOB: job960-A
Worker: worker687 =>
Vou enviar meu STATUS para meu MANAGER: Manager01
Manager: Manager01
Recebi NODE_STATUS
Vejam que a thread do worker687 executa uma coisa e a thread do worker745 executa outra. Eu havia pensado que o problema poderia estar relacionado a socket mas não é pois o problema esta na execução dessas threads. a saida correta de ambas as threads deveria ser tanto para a threads do worker687 quanto para a thread do worker745
Worker: worker687 => É UMA THREAD
vou resolver o JOB: job960-B
Worker: worker687 =>
resolvi o JOB: job960-B
Worker: worker687 =>
A nova capacidade eh: 5
O novo workload eh: 0
Worker: worker687 =>
levou : 1ms para executar o JOB: job960-B
Worker: worker687 =>
Vou enviar o resultado do meu JOB: job960-B para meu MANAGER: Manager01
Manager: Manager01
Recebi JOB_RESULT
Worker: worker687 =>
Vou enviar meu STATUS para meu MANAGER: Manager01
Manager: Manager01
Recebi NODE_STATUS
Alguem teria alguma sugestão de o que poderia ser? Em alguns métodos da thread que executa os worker eu estou utilizando syncronized