Problema JAVA

AlexlovesUSA
Ciao a tutti. Sto facendo una tesina per una materia che consiste in un programma scritto in java che deve gestire attraverso i Thread la cabina di una banca (Quella che si apre una porta per volta) che può contenere al max 3 persone avendo a disposizione una fila infinita che attende e spazio infinito dentro la banca. Ho fatto il programmino che consiste di 5 classi. QUndo compilo mi va tutto bene, non c'è un errore, quando vado a fare partitre la classe con il main mi appare questo errore "java.lang.IllegalMonitorStateException" che errore è? non l'ho mai visto. :?

Risposte
lucalbero
La risposta qui di seguito è riportata da un topic esistente sul forum Google Group data da TempestaT400: "IllegalMonitorStateException la ottieni quando cerci di invocare una wait o una notify o qualsiasi altro metodo relativo alla sincronizzazione senza aver acquisito il lock..."

AlexlovesUSA
Ah ok. Ma cosa sarebbe il lock? :shock:

dzcosimo
prima di spiegartelo potremmo sapere qual'è il tuo livello di istruzione-conoscenza del linguaggio di modo da poter risultare adeguati?

AlexlovesUSA
Io frequento il secondo anno di ingegneria informatica. Ho dato già una materia al primo anno, fondamenti di informatica, che era in poche parole java + qualche concetto fondamentale di informatica. Questo esercizio invece riguarda la materia di secondo anno Sistemi Operativi. Devo9 fare una tesina e cioè questo problema e poi fare pure l'applet in java, cosa che non abbiamo mai visto in nessuna materia, ma per adesso il problema è questo della monitor Exception, per l'applet ho iniziato già a studiare come farla. :wink:

clockover
Quella è un'eccezione a Runtime ed è per questo che nella compilazione non ci sono problemi....leggi a che riga di codice avviene! Leggi l'eccezione e troverai il problema

raff5184
"lucalbero":
La risposta qui di seguito è riportata da un topic esistente sul forum Google Group data da TempestaT400: "IllegalMonitorStateException la ottieni quando cerci di invocare una wait o una notify o qualsiasi altro metodo relativo alla sincronizzazione senza aver acquisito il lock..."
no è solo la traduzione di quanto specificato nell'API Java "Thrown to indicate that a thread has attempted to wait on an object's monitor or to notify other threads waiting on an object's monitor without owning the specified monitor. " ;-)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.