Strumenti Utente

Strumenti Sito


lpr-b:threadtermina
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:threadtermina [05/10/2007 alle 18:15 (17 anni fa)] (versione attuale) – creata Marco Danelutto
Linea 1: Linea 1:
 +<code java>
 +package threadPoolConTerminazione;
  
 +public class ComputerThread<T,S> extends Thread {
 +
 + Repository<T> tasks = null; 
 + Repository<S> results = null; 
 + Compute<T,S> function = null; 
 +
 + public ComputerThread(Repository<T> tasks, Repository<S> results, Compute<T,S> function) {
 + this.tasks = tasks; 
 + this.results = results; 
 + this.function = function; 
 + return;
 + }
 +
 + public void run() {
 + while(true) {
 + T task = null; 
 + try {
 + task = tasks.extract();
 + } catch (EndOfStreamException e) {
 + System.out.println("Thread "+this.getName()+" ricevuto EoS");
 + return; // fine lavori
 + } catch (InterruptedException e) {
 + System.out.println("Estrazione task interrotta");
 + }
 + try {
 + int random =  ((int)(Math.random() * 5000.00));
 + System.out.println("Thread "+this.getName()+" inizio calcolo");
 + sleep(random);
 + S result = function.compute(task); 
 + System.out.println("Thread "+this.getName()+" fine calcolo");
 + results.insert(result);
 + } catch(InterruptedException e) { System.out.println("Calcolo del thread "+this.getName()+" interrotto!");}
 +
 + System.out.println("Thread "+this.getName()+" computed task "+task);
 +
 + }
 + }
 +
 +}
 +</code>
lpr-b/threadtermina.txt · Ultima modifica: 05/10/2007 alle 18:15 (17 anni fa) da Marco Danelutto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki