Sobes.tech
Junior — Middle

Quali sono i metodi principali della classe Object utilizzati per lavorare con i flussi e la sincronizzazione?

sobes.tech AI

Risposta dell'AI

In Java, la classe Object fornisce diversi metodi comunemente usati quando si lavora con thread e sincronizzazione:

  • wait() — fa sì che il thread corrente aspetti finché un altro thread non chiama notify() o notifyAll() sullo stesso oggetto. Viene usato per organizzare l'attesa di uno stato specifico.

  • notify() — risveglia un singolo thread che sta aspettando su quell'oggetto.

  • notifyAll() — risveglia tutti i thread in attesa su quell'oggetto.

Questi metodi devono essere chiamati all'interno di un blocco o metodo sincronizzato, altrimenti verrà sollevata un'eccezione IllegalMonitorStateException.

Esempio di utilizzo:

synchronized (sharedObject) {
    while (!condition) {
        sharedObject.wait();
    }
    // Azioni dopo che la condizione è stata soddisfatta
}

// In un altro thread
synchronized (sharedObject) {
    // Modifica dello stato
    sharedObject.notify();
}