Salve
sto lavorando ad un progetto universitario che devo consegnare i primi di settembre ma sono da un giorno fermo su un errore, Mi date una mano.

Le specifiche del progetto sono queste.

codice:
Si realizzi una classe BufferLimitato che implementi un buffer FIFO a dimensione prefissata accessibile
da piu' thread.
La classe deve avere un costruttore che prende come parametro la dimensione del buffer.
L'accesso al buffer (ai metodi che modificano il buffer) deve avvenire in mutua esclusione.
La classe deve fornire i metodi:
        public void inserisci(Object) throws InterruptedException
     ●
        che inserisce un elemento nel buffer eventualmente bloccando il thread chiamante finché il
        buffer e' pieno.
        public Object rimuovi( ) throws InterruptedException
     ●
        che rimuove un elemento dal buffer (secondo la logica FIFO) eventualmente bloccando il
        chiamante finché il buffer e' vuoto
Le segnature dei metodi possono essere estese, ad esempio con la keyword synchronized o con
l’aggiunta di altre eccezioni, ma non possono essere rimosse le parti fornite da noi. La classe può avere
altri metodi.
Si dovrà fare uso di costrutti di sincronizzazione wait/notify, e qualsiasi costrutto di sincronizzazione
che non sia synchronized o wait/notify dovrà essere implementato dallo studente (ad es. i semafori). Si
potrà fare uso delle strutture dati messe a disposizione da Java (ad esempio la classe java.util.Vector),
ma non della loro versione sincronizzata. Particolare attenzione dovrà essere dedicata alla gestione delle
eccezioni.
Si dovrà tenere traccia di tutti i thread in esecuzione (memorizzandoli ad es. in una struttura dati) e
assicurandosi che l'applicazione termini solo dopo che tutti i thread sono terminati (utilizzando join).
Non e' permesso uscire dall'applicazione utilizzando una System.exit.
Il codice Java dovrà essere commentato e dovrà essere accompagnato da una breve relazione con la
descrizione delle scelte implementative adottate.
Si dovranno presentare delle classi che testano le soluzioni prodotte (le classi che implementano tali test
vanno specificate chiaramente nella relazione) ed, implementare dei thread che usano il suddetto buffer
inserendo e rimuovendo elementi.
Sulla parte dove bisogna tenere traccia di tutti i Thread non ho ancora lavorato per ora sto lavorando sulle classi che testano le soluzioni prodotte .....
In Pratica ho creato la classe BufferLimitato
codice:
public class BoundedBufferSynchronized{

    private int in; // points to the next free position
    private int out; // points to the next full position
    private int count;
    private Object[] buffer;
    
    public BoundedBufferSynchronized(int size){
        in = 0;
        out = 0;
        count = 0;
        buffer = new Object[size];
    }
    
    public synchronized void insert(Object item){
      
    }
    
    public synchronized Object remove(){
       
    }
    
    private boolean isEmpty(){
        return count == 0;
    }

    private boolean isFull(){
        return count == buffer.length;
    }
}
Ho creato il MainStart

codice:
package santoro;

public class Start {

	
	public static void main(String[] args) throws InterruptedException {
		
		OggettoDaCaricare Oget = new OggettoDaCaricare(); 
		BufferLimitato BufferLimit = new BufferLimitato(100);
		ThreadInsert Thread1 = new ThreadInsert("Roby");
		Thread1.start();
	}

}
:master: e gia qui iniziano i problemi.. In Eclipse BufferLimit Viene sottolineato e non capisco perché.!? Stesso problema con Oget....
Poi ho creato la classe
codice:
package santoro;

public class ThreadInsert extends Thread {
	
	
	ThreadInsert(){
		super( "name" );
	}


	ThreadInsert(String name){
		super( name );
	}
	public void run(){
		System.err.println(getName()+ " E' Partito");
		
		BufferLimit.insert(Oget);
	}

}
E mi da errore su BufferLimit ... Perche?
Nel metodo Run Non posso invocare il metodo in un altro oggetto! in questo caso Nel Run di ThreadInsert Non posso invocare un metodo di BufferLimitato? BufferLimit.insert(Oget)? Oget è un oggetto che non fa nulla...

Accetto ogni consiglio.