Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Tarefa de Multithreading | Conceitos Básicos de Multithreading
Quizzes & Challenges
Quizzes
Challenges
/
Multithreading em Java

bookTarefa de Multithreading

Tarefa

É necessário implementar a lógica para criar 100 threads, cada uma das quais irá calcular o fatorial do índice em um loop e salvar o resultado no array results. Também é necessário aguardar todas as threads finalizarem antes de exibir os resultados. (método join() )

Note
Nota

Não altere nada além do método calculateFactorialsInParallel()

Os métodos factorial(), printMassive(), getResults() já estão prontos e não precisam ser modificados

factorial(Integer) - calcula o fatorial do número passado como parâmetro;

printMassive(BigInteger[]) - imprime o array de resultados no console;

getResults() - retorna o array de resultados (utilizado para testes);

SIZE_MASSIVE - constante para definir o tamanho do array (NÃO ALTERAR);

results[] - array para armazenar os resultados.

Após concluir a tarefa, acesse src/test/java/TaskThreadTest.java e execute-a

Deve haver apenas um teste para ser aprovado na primeira execução

Quando a tarefa for realizada corretamente, todos os testes devem ser aprovados; se algum teste não for aprovado, então o método calculateFactorialsInParallel() foi implementado incorretamente ou foram alterados campos/métodos que não podem ser modificados

Plano de Implementação

  1. Criar um array de threads: Configurar um array de objetos Thread, onde cada elemento corresponde a uma thread diferente. O tamanho do array deve corresponder ao array que está sendo processado (SIZE_MASSIVE = 100).

  2. Inicializar cada thread: Em um laço que percorre cada elemento do array, criar uma nova thread. Dentro dessa thread, executar a tarefa necessária (calcular o fatorial do índice). Armazenar o resultado no array de resultados.

  3. Iniciar as threads: Após criar cada thread, iniciá-la chamando o método start().

  4. Aguardar todas as threads finalizarem: Depois de iniciar todas as threads, utilizar o método join() em cada thread para garantir que a thread principal do programa aguarde até que todas as threads terminem. Isso assegura que todos os cálculos estejam completos antes que a thread principal do programa prossiga.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you show me how to implement the calculateFactorialsInParallel() method?

What should I do if some tests do not pass after running them?

Can you explain how to use the join() method with threads in this context?

bookTarefa de Multithreading

Deslize para mostrar o menu

Tarefa

É necessário implementar a lógica para criar 100 threads, cada uma das quais irá calcular o fatorial do índice em um loop e salvar o resultado no array results. Também é necessário aguardar todas as threads finalizarem antes de exibir os resultados. (método join() )

Note
Nota

Não altere nada além do método calculateFactorialsInParallel()

Os métodos factorial(), printMassive(), getResults() já estão prontos e não precisam ser modificados

factorial(Integer) - calcula o fatorial do número passado como parâmetro;

printMassive(BigInteger[]) - imprime o array de resultados no console;

getResults() - retorna o array de resultados (utilizado para testes);

SIZE_MASSIVE - constante para definir o tamanho do array (NÃO ALTERAR);

results[] - array para armazenar os resultados.

Após concluir a tarefa, acesse src/test/java/TaskThreadTest.java e execute-a

Deve haver apenas um teste para ser aprovado na primeira execução

Quando a tarefa for realizada corretamente, todos os testes devem ser aprovados; se algum teste não for aprovado, então o método calculateFactorialsInParallel() foi implementado incorretamente ou foram alterados campos/métodos que não podem ser modificados

Plano de Implementação

  1. Criar um array de threads: Configurar um array de objetos Thread, onde cada elemento corresponde a uma thread diferente. O tamanho do array deve corresponder ao array que está sendo processado (SIZE_MASSIVE = 100).

  2. Inicializar cada thread: Em um laço que percorre cada elemento do array, criar uma nova thread. Dentro dessa thread, executar a tarefa necessária (calcular o fatorial do índice). Armazenar o resultado no array de resultados.

  3. Iniciar as threads: Após criar cada thread, iniciá-la chamando o método start().

  4. Aguardar todas as threads finalizarem: Depois de iniciar todas as threads, utilizar o método join() em cada thread para garantir que a thread principal do programa aguarde até que todas as threads terminem. Isso assegura que todos os cálculos estejam completos antes que a thread principal do programa prossiga.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 7
some-alt