import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class MultiplyMatrixMain { public static void main(String[] args) throws InterruptedException, ExecutionException { // generare 2 matrici int size=2; ArrayList> m1 = new ArrayList<>(); ArrayList> m2 = new ArrayList<>(); //...... //creare executor ExecutorService es= Executors.newFixedThreadPool(size); //creare task ArrayList tasks= new ArrayList<>(); for(int i=0;i>> results= es.invokeAll(tasks); //prendere risultati ArrayList> result= new ArrayList<>(); for (Future> r : results ){ result.add(r.get()); } printMatrix(result); } private static void printMatrix(ArrayList> result) { //... } }