Esperando pelos trechos

Esperando pelos trechos

by Carlos Eduardo Moreira dos Santos -
Number of replies: 6
Não sei como executar paralelamente cada trecho e esperar que eles terminem de movimentar todos os seus carros para só depois executar uma próxima rodada. Alguém poderia me indicar um caminho?

Obrigado
In reply to Carlos Eduardo Moreira dos Santos

Re: Esperando pelos trechos

by Felipe José Cardoso Bülle -

Carlos...

Eu fiz cada trecho rodar em uma thread diferente... eu disparo todas ao mesmo tempo.

Cada carro também fiz como uma thread e disparo todas ao mesmo tempo. Uma thread de carro tenta entrar no trecho e espera até sair, para entrar em outro...

A cada intervalo de tempo, eu mando todos os trechos atualizarem as posições dos carros que se encontram neles... nessa atualização, o trecho também pode notificar um carro avisando que ele saiu do trecho. Quando o carro é notificado, ele entra no próximo trecho...

Fiz mais ou menos assim... espero ter ajudado!

In reply to Felipe José Cardoso Bülle

Re: Esperando pelos trechos

by Carlos Eduardo Moreira dos Santos -
(estou sem acentos) Pelo que eu entendi por "A cada intervalo de tempo", imagino que voce chama os trechos um a um num laço, correto?

Havera desconto de nota se chamarmos os trechos serialmente para movimentar os carros? Dessa forma, o comportamento seria semelhante ao dos trechos em relaçao aos carros (cada trecho percorre uma lista de carros para redesenha-los).

Perguntei pra algumas pessoas e algumas delas deixam as threads do tipo trecho atualizarem-se sem nenhum controle, o que pode fazer com que alguns trechos rodem mais que outros.

Obrigado
In reply to Carlos Eduardo Moreira dos Santos

Re: Esperando pelos trechos

by Alfredo Goldman -
Olá,
O importante é que cada carro seja uma thread. Naturalmente, a thread
do trecho vai ter que funcionar de forma serial (caso contrário um carro poderia
passar por cima de outro).
Não importa se um trecho "roda" mais rápido do que outro, desde que os
trechos consigam "liberar" os seus carros de forma que a simulação fique com
aspecto real.

Alfredo
In reply to Alfredo Goldman

Re: Esperando pelos trechos

by Carlos Eduardo Moreira dos Santos -
O Trecho precisa ser uma thread e movimentar os carros (claro que serialmente) pelo run? Neste caso nao precisaria se preocupar com a sincronizaçao a cada turno se a simulaçao parecer real?

Posso nao fazer threads com os trechos e chama-los serialmente?

Obrigado
In reply to Carlos Eduardo Moreira dos Santos

Re: Esperando pelos trechos

by Alexandre Pitta Guedes -
Existe mesmo a necessidade da classe Trecho estender Runnable?
Eu fiz carros e guardas Runnable apenas. E a cada intervalo de tempo chamo os metodos dos trechos para atualizar a posicao dos carros, etc.

Pela resposta do Alfredo, está tudo ok.
In reply to Carlos Eduardo Moreira dos Santos

Re: Esperando pelos trechos

by Ricardo Cillo -
Cadu, nesse laço das threads trecho talvez tenha um sleep. Eu tenho a impressão que esse sleep tem um efeito legal: raramente uma thread executa duas vezes o laço enquanto outra uma vez só.

Aí fica parecendo que elas são coordenadas. Acertando os parametros como velocidade do carro, tamanho do trecho, etc tb ajuda pra dar aquele efeito "ficou bonitinho" que o Gold quer.