2
respostas

loop for com tarefa

pessoal, eu entendi que a segunda tarefa esta competindo com a tarefa principal e somente quando eu termino a primeira a outra e executada. porem eu nao entendi dois aspectos : pq mesmo acabando o loop o metodo e chamado e dez vezes? e pq pelo simples de fato do o valor de i ser passado para uma variavel é possivel passar os outros valores para o metodo alem do 10?

obs: tentem me responder mais depressa esta demorando muito

2 respostas

Luan, bom dia.

Primeiramente sou apenas um colega aqui da Alura e não instrutor ou moderador. Talvez eles respondam suas dúvidas no fórum ou talvez não vejam pela quantidade. O fórum está aqui para nos ajudarmos mesmo.

As vezes as pessoas não respondem por não entenderem a pergunta ou dúvida.

Vou dizer a respeito o quê entendi.

As threads concorrem entre si. É um fato. Pense numa corrida de cavalos onde estão participando 10. Você não sabe quem vai chegar primeiro, apenas sabe que serão dez. Agora só serão todos os 10 se você colocar a variável i dentro de um outra local. Se você deixar a thread levar direto o "i" dentro do método como referência, pode causar a finalização do laço FOR antes das 10 vezes.

Aí acontece que mesmo depois de ter terminado o loop os 10 carinhas ainda estão rodando ou correndo como na corrida de cavalos. Por isso há comandos que a aula mostra se quiser esperar pelo final de todos para exibir alguma mensagem e tal.

Se eu consegui te ajudar, marque a resposta como solucionada, por favor! Abs.

obrigado pela resposta murilo , mas nao sei se entendi direito, ve se é isso: quando e passo o metodo correr para ser executado dentro de task.run , este paramentro i que ele recebe nao é por valor é por referencia , por isso o valou fica com 10?