Ciao.
In un ciclo for, lancio una serie di thread (la classe dei thread l'ho chiamata thread.Save e estende la classe java.lang.Thread). A ciascuno di questi thread passo un oggetto PreparedStatement che inizializzo prima del ciclo for e chiudo fuori (per ragioni di performance di accesso al database). Il problema è che il PreparedStatement lo devo chiudere solo dopo che tutti i thread hanno completato la loro attività per non generare una SQLException. Il controllo che ho implementato non sembra funzionare correttamente. Di seguito il codice, qualcuno saprebbe darmi una mano? grazie a tutti
codice:..... ..... PreparedStatement ps = ora.getPreparedStatement(insert); ExecutorService executor = Executors.newFixedThreadPool(numMax); for (int i = 0; i < conta; i++) executor.execute(new thread.Save(id,i,ps)); executor.shutdown(); executor.awaitTermination((long) 172800, TimeUnit.SECONDS); if (ps != null) ps.close(); .... ....

Rispondi quotando