Come struttura di dati ho usato una LinkedList.
Ho passato questa coda nel costruttore del Thread, fatto in questo modo:
codice:
public class MioThread implements Runnable{
private ElencoPersone coda;
public SportelloThread(coda){
this.coda = coda;
}
public void run(){
while(coda.getStato()){
try{
coda.wait();
}catch(InterruptExcpetion e){
// deaccoda
}
}
}
dove ElencoPersone è:
codice:
public class ElencoPersone {
public ElencoPersone(boolean stato){
this.stato = stato;
}
private LinkedList<Persona> coda;
private boolean stato;
public void aggiungi(Persona p){
if(stato == true)
coda.add(cliente);
}
public synchronized Cliente rimuovi() throws Exc{
if(coda.isEmpty())
throw new Exc;
return coda.remove();
}
public void setStato(boolean stato){
this.stato = stato;
}
public boolean getStato(){
return stato;
}
}
Ora il problema è un altro.
Non avendo mai avuto modo di affrontare questo tipo di problema, la condizione da verificare nel run del thread da cosa deve dipendere?