Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    148

    (Java) wait() e sleep()

    riguardo ai thread...
    per far partire un thread dopo un certo periodo di tempo potrei usare:
    sleep(tempo)
    o
    wait(tempo)
    con la differenza che "wait" mi permette di far svegliare il thread anche dal metodo notify()

    fin qui ok...

    nel mio progr mettendo sleep funziona ok, ma sostituendo sleep(10000)con wait(10000) in fase di esecuzione mi da la seguente eccezione: "IllegalMonitorStateException"

    sono andata a vedere nella documentazione e per questa eccezione c'è scritto che si verifica: "if the current thread is not the owner of the object's monitor."

    qualcuno sa cosa vuol dire? cosa intende per "object's monitor"?

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    il metodo wait aspetta qualcosa
    se tu non gli dici cosa aspettare crea un'eccezione
    credo che se fai così funzionerà
    synchronized (this) { // o un oggetto sul quale aspettare
    wait(10000);
    }

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Quell'eccezione capita quando un oggetto non è registrato per poter mettere in wait un thread. In pratica accade quando il thread non è stato creato dall'oggetto che tenta di metterlo in wait o quando il thread non ha un puntatore all'oggetto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    148
    vedo di capire l'eccezione valutando i vostri aiuti...
    grazie... vi farò sapere!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    148
    come ha detto Floyd funziona.... GRAZIE!

  6. #6

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 © 2024 vBulletin Solutions, Inc. All rights reserved.