Compito sul Multithreading
Compito
È necessario scrivere la logica per creare 100 thread, ognuno dei quali calcolerà il fattoriale dell'indice in un ciclo e salverà il risultato nell'array results.
È inoltre necessario attendere che tutti i thread abbiano terminato prima di stampare i risultati. (metodo join() )
Non modificare nulla tranne il metodo calculateFactorialsInParallel()
I metodi factorial(), printMassive(), getResults() sono già pronti e non devono essere modificati in alcun modo
factorial(Integer) - calcola il fattoriale del numero passato come parametro;
printMassive(BigInteger[]) - stampa l'array dei risultati sulla console;
getResults() - restituisce l'array dei risultati (utilizzato per i test);
SIZE_MASSIVE - costante per la definizione del valore dell'array (NON MODIFICARE);
results[] - array per la registrazione dei risultati.
Una volta completato il compito, vai su src/test/java/TaskThreadTest.java ed eseguilo
Dovresti avere un solo test da superare la prima volta che lo esegui
Quando il compito viene svolto correttamente, tutti i test dovrebbero essere superati; se qualche test non viene superato, allora hai implementato calculateFactorialsInParallel() in modo errato oppure hai modificato quei campi/metodi che non possono essere cambiati
Piano di Implementazione
-
Creare un array di thread: Configurare un array di oggetti
Thread, dove ogni elemento corrisponde a un thread differente. La dimensione dell'array deve corrispondere a quella dell'array da elaborare (SIZE_MASSIVE = 100). -
Inizializzare ogni thread: In un ciclo che itera su ciascun elemento dell'array, creare un nuovo thread. All'interno di questo thread, eseguire il compito richiesto (calcolare il fattoriale dell'indice). Salvare il risultato nell'array dei risultati.
-
Avviare i thread: Una volta creato ciascun thread, avviarlo chiamando il metodo
start(). -
Attendere il completamento di tutti i thread: Dopo aver avviato tutti i thread, utilizzare il metodo
join()su ciascun thread per garantire che il thread principale del programma attenda il completamento di tutti i thread. Questo assicura che tutti i calcoli siano terminati prima che il thread principale del programma prosegua.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Fantastico!
Completion tasso migliorato a 3.33
Compito sul Multithreading
Scorri per mostrare il menu
Compito
È necessario scrivere la logica per creare 100 thread, ognuno dei quali calcolerà il fattoriale dell'indice in un ciclo e salverà il risultato nell'array results.
È inoltre necessario attendere che tutti i thread abbiano terminato prima di stampare i risultati. (metodo join() )
Non modificare nulla tranne il metodo calculateFactorialsInParallel()
I metodi factorial(), printMassive(), getResults() sono già pronti e non devono essere modificati in alcun modo
factorial(Integer) - calcola il fattoriale del numero passato come parametro;
printMassive(BigInteger[]) - stampa l'array dei risultati sulla console;
getResults() - restituisce l'array dei risultati (utilizzato per i test);
SIZE_MASSIVE - costante per la definizione del valore dell'array (NON MODIFICARE);
results[] - array per la registrazione dei risultati.
Una volta completato il compito, vai su src/test/java/TaskThreadTest.java ed eseguilo
Dovresti avere un solo test da superare la prima volta che lo esegui
Quando il compito viene svolto correttamente, tutti i test dovrebbero essere superati; se qualche test non viene superato, allora hai implementato calculateFactorialsInParallel() in modo errato oppure hai modificato quei campi/metodi che non possono essere cambiati
Piano di Implementazione
-
Creare un array di thread: Configurare un array di oggetti
Thread, dove ogni elemento corrisponde a un thread differente. La dimensione dell'array deve corrispondere a quella dell'array da elaborare (SIZE_MASSIVE = 100). -
Inizializzare ogni thread: In un ciclo che itera su ciascun elemento dell'array, creare un nuovo thread. All'interno di questo thread, eseguire il compito richiesto (calcolare il fattoriale dell'indice). Salvare il risultato nell'array dei risultati.
-
Avviare i thread: Una volta creato ciascun thread, avviarlo chiamando il metodo
start(). -
Attendere il completamento di tutti i thread: Dopo aver avviato tutti i thread, utilizzare il metodo
join()su ciascun thread per garantire che il thread principale del programma attenda il completamento di tutti i thread. Questo assicura che tutti i calcoli siano terminati prima che il thread principale del programma prosegua.
Grazie per i tuoi commenti!