Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    82

    wait solleva illegal state exception

    Ho un thread che istanzia un object. Un secondo thread preleva staticamente l'object e su di esso cerca di fare una wait. A questo punto viene sollevata l'eccezione. Ho letto un po in giro e dicono di usare synchronized ma l'errore sussiste
    codice:
    public void run(){ 
          while(cond){ 
                 synchronized(this)
                    { Thread1.obj.wait();} 
                 } 
    }
    Grazie dell'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    posti tutta l'eccezione ? così si va ad intuito

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    82
    non so quanto vi possa essere utile:

    java.lang.IllegalMonitorStateException
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at Professor.ProfessorMulti$1.run(ProfessorMulti.java :104)
    at java.lang.Thread.run(Unknown Source)

    sollevata in corrispondenza della wait

    non penso di essere obbligato a dichiarare la variabile all'interno dello stesso thread...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    no quello non è utile, ma allora quello è tutto il thread? non penso, puoi postare il codice (di tutto il thread)?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    82
    ho cercato di zippare il codice

    codice:
    class MyThread {
    
    private static Object obj = new Object();
    
    
    public static void main(String argv[]) throws Exception {	
    	
    	SetJob();
    	//try
    	obj.wait();
    	//catch
      	//altro codice	
    
      }
    private static void SetJob(){
    	
    	new Thread(new Runnable(){
    		public void run(){
    			while(cond){
    			}	
    		synchronized(this){
    						//try
    						obj.notify()
    						//catch
    						//altro codice
    						}
    		}
    	}).start();
    }
    
    }

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    82
    ho cambiato this con obj e sembra funzionare

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    stasera lo provo con calma, almeno per vedere che era

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.