Strumenti Utente

Strumenti Sito


lpr-b:repositorytermina
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:repositorytermina [05/10/2007 alle 18:14 (17 anni fa)] (versione attuale) – creata Marco Danelutto
Linea 1: Linea 1:
 +<code java>
 +package threadPoolConTerminazione;
  
 +import java.util.LinkedList;
 +
 +/**
 + * classe che implementa il repository delle cose da calcolare
 + * @author marcod
 + */
 +
 +public class Repository<T> {
 +
 + private LinkedList<T> ll = null; 
 + boolean eos = false; 
 +
 + public Repository() {
 + super();
 + ll = new LinkedList<T>();
 + }
 +
 + /**
 + * inserzione di un elemento nel pool
 + * @param data il dato da inserire
 + */
 + public synchronized void insert(T data) { 
 + ll.add(data); 
 + notify();
 +
 +
 + /**
 + * estrazione dell'elemento più vecchio dal pool 
 + * @return il dato più vecchio nel pool (rimosso)
 + */
 + public synchronized T extract() throws EndOfStreamException, InterruptedException 
 + while(ll.isEmpty()) {
 + if(eos) {
 + throw new EndOfStreamException();
 + }
 + wait();   // se viene interrotta è per la interrupt allo Stampatore
 + }
 + T task =  ll.remove(); 
 + return task;
 + }
 +
 + public synchronized void eos() {
 + eos = true;
 + }
 +}
 +</code>
lpr-b/repositorytermina.txt · Ultima modifica: 05/10/2007 alle 18:14 (17 anni fa) da Marco Danelutto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki