Buongiorno,
ho realizzato una struttura (un array) bloccante che ha questi 2 metodi:
Ho un thread che richiama il metodo get:codice:public void add(File f,int j){ synchronized(shared){ shared[j] = f; shared.notifyAll(); } } public File get(int index) throws InterruptedException{ synchronized(shared){ while(shared[i]==null) shared.wait(); return shared[index]; }
codice:try{ shared.get(int i) /*altre operazione tra cui lancio di un altro thread */ sleep(5000); } catch(InterruptedExcpetion e){ return; } Ho notato che quando invio un interrupt a questo thread la funzione get non è più bloccante, infatti mi legge un file vuoto. Come mai visto che quando catturo l'eccezione gli dico di fare solo un return?

Rispondi quotando
