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
