

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Considere o seguinte algoritmo.
1) Criar uma lista de arquivos para download.
2) Iniciar múltiplas threads para baixar os arquivos em paralelo.
3) Cada thread faz o download de um arquivo da lista.
4) Ao final de cada download, atualizar a lista de arquivos marcando que o download foi efetuado.
5) Exibir uma mensagem informando que todos os downloads foram concluídos.
Assinale a alternativa com o algoritmo corrigido para evitar a condição de corrida, sem abrir mão do paradigma de programação concorrente.
1) Criar uma lista de arquivos para download.
2) Fazer o download de cada arquivo, sequencialmente.
3) Exibir uma mensagem informando que todos os downloads foram concluídos.
1) Criar uma lista de arquivos para download.
2) Inicializar um mutex (exclusão mútua) para controlar o acesso à lista de arquivos.
3) Iniciar múltiplas threads para baixar os arquivos em paralelo.
4) Cada thread adquire o mutex (exclusão mútua) antes de acessar a lista, seleciona um arquivo disponível e libera o mutex (exclusão mútua).
5) Cada thread faz o download de um arquivo da lista.
6) Após o download, a thread adquire o mutex (exclusão mútua) novamente e atualiza a lista, marcando que o download foi efetuado, e então libera o mutex (exclusão mútua).
7) Exibir uma mensagem informando que todos os downloads foram concluídos.
1) Criar uma lista de arquivos para download.
2) Verificar se existe conexão com a Internet.
3) Iniciar múltiplas threads para baixar os arquivos em paralelo.
4) Cada thread faz o download de um arquivo da lista.
5) Ao final de cada download, atualizar a lista de arquivos marcando que o download foi efetuado.
6) Exibir uma mensagem informando que todos os downloads foram concluídos.
1) Criar uma lista de arquivos para download.
2) Iniciar múltiplas threads para baixar os arquivos em paralelo.
3) Verificar se o arquivo existe.
4) Cada thread faz o download de um arquivo da lista.
5) Ao final de cada download, atualizar a lista de arquivos marcando que o download foi efetuado.
6) Exibir uma mensagem informando que todos os downloads foram concluídos.
1) Criar uma lista de arquivos para download.
2) Iniciar múltiplas threads para baixar os arquivos em paralelo.
3) Verificar se o existe espaço disponível para o download.
4) Cada thread faz o download de um arquivo da lista.
5) Ao final de cada download, atualizar a lista de arquivos marcando que o download foi efetuado.
6) Exibir uma mensagem informando que todos os downloads foram concluídos.