readerwriter
Class PriorityThreadSelector

java.lang.Object
  |
  +--readerwriter.PriorityThreadSelector
All Implemented Interfaces:
ThreadSelector

public class PriorityThreadSelector
extends java.lang.Object
implements ThreadSelector

La classe PriorityThreadSelector implementa un selezionatore di Thread (interfaccia ThreadSelector), a priorita', costruendo per ognuna delle 10 priorita' possibili una selezionatore di Thread FIFO (FifoThreadSelector), che dovra' gestire tutti i thread che hanno la stessa priorita'. Quando un thread viene aggiunto, a seconda della sua priorita' viene aggiunto nella coda appropriata, il primo thread risvegliato, e' il primo thread selezionabile in modalita' FIFO, nella prima coda non vuota in ordine di priorita' (MIN_PRIORITY -> MAX_PRIORITY)


Field Summary
static int MAX_PRIORITY
           
static int MIN_PRIORITY
           
 
Constructor Summary
PriorityThreadSelector()
           
 
Method Summary
 void addThread(SemaphoredThread newThread, java.lang.Integer priority)
          Inserisce un nuovo Thread nella lista dei Thread in attesa, a seconda della sua priorita' viene inserito in una coda dove ci sono in attesa tutti i thread della sua stessa priorita'.
 void addThread(SemaphoredThread newThread, java.lang.Object priority)
          Mettodo dell'interfaccia usato come wrapper per il metodo effettivo della classe che prende un oggetto della classe Integer come oggetto per la definizione della priorita', il metodo tentera' una conversione del parametro attuale in un oggetto di classe Integer, se la conversione non puo' avere luogo, la priorita' sara' settata a zero.
static void main(java.lang.String[] args)
           
 SemaphoredThread removeThread()
          Rimuove il Thread Thread dalla lista dei Thread in attesa; si preoccupa di risvegliare il Thread dal suo stato di wait.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MIN_PRIORITY

public static final int MIN_PRIORITY

MAX_PRIORITY

public static final int MAX_PRIORITY
Constructor Detail

PriorityThreadSelector

public PriorityThreadSelector()
Method Detail

addThread

public void addThread(SemaphoredThread newThread,
                      java.lang.Object priority)
Mettodo dell'interfaccia usato come wrapper per il metodo effettivo della classe che prende un oggetto della classe Integer come oggetto per la definizione della priorita', il metodo tentera' una conversione del parametro attuale in un oggetto di classe Integer, se la conversione non puo' avere luogo, la priorita' sara' settata a zero. Il metodo e' thread safe
Specified by:
addThread in interface ThreadSelector
Parameters:
newThread - Thread corrente che deve essere aggiunto nella lista dei thread in attesa
priority - oggetto generico che definisce la priorita' da assegnare al Thread aggiunto

addThread

public void addThread(SemaphoredThread newThread,
                      java.lang.Integer priority)
Inserisce un nuovo Thread nella lista dei Thread in attesa, a seconda della sua priorita' viene inserito in una coda dove ci sono in attesa tutti i thread della sua stessa priorita'. Metodo semanticamente equivalente a quello dell'interfaccia ThreadSelector, ma sintatticamente specializzato, nella specificazione del parametro formale che definisce la priorita' che in questo caso e' un oggetto di classe Integer. Il metodo e' thread safe
Parameters:
newThread - Thread corrente che deve essere aggiunto nella lista dei thread in attesa
priority - Integer che ne identifica la priorita', l'intero (oggetto della classe Integer) puo' andare da un minimo di MIN_PRIORITY ad un massimo di MAX_PRIORITY

removeThread

public SemaphoredThread removeThread()
Rimuove il Thread Thread dalla lista dei Thread in attesa; si preoccupa di risvegliare il Thread dal suo stato di wait. Il metodo e' thread safe
Specified by:
removeThread in interface ThreadSelector
Returns:
SemaphoredThread Il thread che e' stato selezionato dalla lista dei thread in attesa, e che e' stato risvegliato; null se non c'erano thread in attesa al momento della chiamata

main

public static void main(java.lang.String[] args)