lpr-b:maintpconcurdue
no way to compare when less than two revisions
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
— | lpr-b:maintpconcurdue [22/10/2007 alle 14:41 (18 anni fa)] (versione attuale) – creata Marco Danelutto | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
+ | <code java> | ||
+ | package threadPoolConcurrencyDue; | ||
+ | import java.util.concurrent.*; | ||
+ | |||
+ | |||
+ | public class ProvaThreadPool { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | final int N = 16; // numero dei task da calcolare | ||
+ | final int T = 4; // numero minimo di thread nel pool | ||
+ | final int MAX_T = 8; // numero massimo di thread nel pool | ||
+ | |||
+ | ThreadPoolExecutor tpe = null; // creazione dell' | ||
+ | tpe = new ThreadPoolExecutor(T, | ||
+ | |||
+ | // creazione del repository per i risultati | ||
+ | LinkedBlockingQueue< | ||
+ | // creazione del thread stampatore | ||
+ | Stampatore< | ||
+ | stampatore.start(); | ||
+ | // funzione da calcolare | ||
+ | Compute< | ||
+ | |||
+ | // questo sostituisce il codice del generatore: | ||
+ | for(int i=0; i<N; i++) { // per ogni task, | ||
+ | Task t = new Task(i, | ||
+ | tpe.execute(t); | ||
+ | try {Thread.sleep(10); | ||
+ | } | ||
+ | tpe.shutdown(); | ||
+ | try { | ||
+ | tpe.awaitTermination(50000L, | ||
+ | } catch (InterruptedException e) { | ||
+ | System.out.println(" | ||
+ | } | ||
+ | System.out.println(" | ||
+ | stampatore.interrupt(); | ||
+ | System.out.println(" | ||
+ | // fine lavori ... | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ |
lpr-b/maintpconcurdue.txt · Ultima modifica: 22/10/2007 alle 14:41 (18 anni fa) da Marco Danelutto