Sobes.tech
Junior — Middle

Quais são os principais métodos da classe Object usados para trabalhar com fluxos e sincronização?

sobes.tech IA

Resposta da IA

Em Java, a classe Object fornece vários métodos que são frequentemente utilizados ao trabalhar com threads e sincronização:

  • wait() — faz com que o thread atual espere até que outro thread chame notify() ou notifyAll() no mesmo objeto. É usado para organizar a espera por um estado específico.

  • notify() — acorda um único thread que está esperando nesse objeto.

  • notifyAll() — acorda todos os threads que estão esperando nesse objeto.

Estes métodos devem ser chamados dentro de um bloco ou método sincronizado, caso contrário será lançada uma IllegalMonitorStateException.

Exemplo de uso:

synchronized (sharedObject) {
    while (!condition) {
        sharedObject.wait();
    }
    // Ações após a condição ser satisfeita
}

// Em outro thread
synchronized (sharedObject) {
    // Alteração de estado
    sharedObject.notify();
}