Diferença entre sono e espera

Sleep vs Wait

Máquinas como computadores usam linguagem artificial para criar programas, controlá-los e permitir que eles comuniquem instruções e expressem algoritmos. Essa linguagem é chamada de linguagem de programação.

Antes do advento dos computadores, as linguagens de programação já eram usadas em teares e pianos. À medida que o uso do computador se tornou mais comum, agora havia várias linguagens de programação sendo usadas.

Existem várias linguagens de computador, incluindo linguagens de alto nível, como: BASIC, C, C ++, Fortran, Pascal e Java. Cada máquina virtual e CPU possui sua própria linguagem de computador, cada uma com suas próprias fraquezas e pontos fortes, e toda máquina virtual executa um encadeamento quando iniciada. Este segmento executa o código do aplicativo no programa. Ele pode fazer um programa rodar mais rápido e ajudar no desempenho e na utilidade, especialmente quando vários threads são usados.

Máquinas virtuais, como a máquina virtual Java, suportam um conceito de multiencadeamento com encadeamentos de maior prioridade executados primeiro em encadeamentos de menor prioridade, garantindo a divisão justa do processamento do tempo.

Ele usa métodos de gerenciamento de encadeamento que podem criar, controlar e finalizar o fluxo de controles ou encadeamentos em um espaço compartilhado. Dois desses métodos de gerenciamento de encadeamento são os métodos de espera e de suspensão.

Esses dois métodos são separados. O método sleep controla a execução do encadeamento e atrasa a próxima ação, enquanto o método wait não controla a execução do encadeamento para permitir que outros encadeamentos sejam executados.

O método wait é definido na classe Object e envia o thread atual para o estado não executável. É usado junto com os métodos notify e notifyAll para permitir que o código de execução de um objeto pause temporariamente e para retomar mais tarde.

Ele funciona chamando um objeto de bloqueio e permitindo que o thread atual seja sincronizado com ele. Wait liberará o bloqueio e colocará o thread na lista de espera e permitirá que outros threads sejam sincronizados com ele, fazendo com que o thread original seja ativado. O programador determina o horário específico em que a execução é iniciada novamente.

O método sleep, por outro lado, é definido como um método estático. Atrasa a execução de threads e não objetos, bem como suspende o thread que está sendo executado. Ele envia os threads atuais para o estado não executável por algum período de tempo. Isso pode afetar o comportamento de aplicativos com vários threads porque mantém os bloqueios de sincronização do thread atual. Depois que o encadeamento estiver em um bloco sincronizado, nenhum outro encadeamento poderá entrar no bloco.

Resumo:

1. “Sleep” é um método de gerenciamento de encadeamento definido como um método estático, enquanto “wait” é um método de gerenciamento de encadeamento definido na classe Object.
2.Sleep é um método que executa threads enquanto wait é um método que executa objetos.
3.Sleep mantém os bloqueios de sincronização do thread atual e influencia o comportamento dos aplicativos enquanto a espera não.
4.Sleep controla a execução do encadeamento e não permite outros encadeamentos em um bloco sincronizado, enquanto a espera não controla a execução do encadeamento para permitir que outros encadeamentos sejam executados.