Estou com um problema no meu EP e não sei se o problema é técnico (estou programando errado) ou se o problema é conceitual (estou modelando o problema errado).
Eu imaginei carros como objetos que implementam Runnable.
Há também os objetos Trecho, com o método entraNoTrecho.
Quando a thread de cada um dos carros é inicializada, elas chamam o método entraNoTrecho para o primeiro trecho.
O trecho então, por sua vez, começa a controlar o movimento do carro, atualizando sua posição a cada interação da simulação.
Quando um carro termina o trecho, eu gostaria de avisar ao carro que terminou para ele executar o entraNoTrecho para o segundo trecho.
Mas isso não dá certo. Eu dou um Wait para cada carro antes de finalizar o método entraNoTrecho, com a condição de verificação que vê se a posição do carro ainda pertence ao trecho. Com isso o carro espera. Enquanto o trecho atualiza os carros que estão nele, ele verifica se algum saiu do trecho. E aí então lança um notify().
Esse notify() deveria tirar o carro do wait(), fazendo ele terminar o método entraNoTrecho e permitindo-o ir para o próximo.
Mas esse meu notify não tá funcionando.
Tentei várias maneiras e não funfa...
Alguém tem alguma dica que possa me ajudar?
Valeu!
Depois de percorrer o primeiro trecho