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
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?

Awesome!

Completion rate improved to 3.33

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