import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; class Fattoriale implements Callable { private final Integer numero; public Fattoriale(Integer numero) { this.numero = numero; } @Override public Integer call() throws Exception { int risultato = 1; if ((numero == 0) || (numero == 1)) { risultato = 1; } else { for (int i = 2; i <= numero; i++) { risultato *= i; TimeUnit.MILLISECONDS.sleep(20); } } System.out.printf("Il fattoriale di %d รจ %d\n", numero, risultato); return risultato; } }