public static void main(String[] args) throws InterruptedException, ExecutionException {
ExecutorService exec = Executors.newCachedThreadPool();
CompletionService<String> pool = new ExecutorCompletionService<String>(exec);
Scanner s = new Scanner(System.in);
String input ="";
while(!input.equals("quit")){
input = s.nextLine();
Callable<String> c = ()->{
return search(input);
};
pool.submit(c);
Future<String> f = pool.poll();
if(f!=null) System.out.println(f.get());
}
exec.shutdown();
}
Perchè nell'espressione lambda non posso usare la variabile
input?
Risulta efficiente come programmazione concorrente?
La mia idea è quella di poter sempre immettere l'input e nel frattempo i thread siano completati li do in pasto all'esecutore e quando il thread di una ricerca sarà completato mi stampa la ricerca.