Logo es.removalsclassifieds.com

Diferencia entre dormir y esperar (con mesa)

Tabla de contenido:

Anonim

Java tiene varios métodos para realizar determinadas acciones. El método es un grupo de código, que se ejecuta solo cuando se lo llama; y puede o no devolver un resultado.

Los métodos como dormir y esperar se utilizan para subprocesos múltiples. Ambos pausan y envían el hilo a espera, pero tienen grandes diferencias en el funcionamiento.

Dormir vs esperar

La diferencia entre el método sleep () y wait () es que el método sleep () se usa en el programa para pausar la ejecución del hilo actual durante un período de tiempo particular, mientras que el método wait () se usa en el programa para pausar o suspender el hilo actual hasta que se invocan métodos específicos.

Durante el uso del método de suspensión, el hilo actual no pierde la propiedad del monitor. El sueño es un método estático y es parte del hilo de la clase. Una vez finalizado el tiempo de espera, el hilo vuelve al estado ejecutable original. Asegura la utilización completa de la CPU, mientras espera.

Mientras que el método wait () se usa en el programa Java para ordenar que el hilo actual espere hasta que no se invoque otro hilo para ese objeto. Luego, el hilo continúa con la ejecución, una vez que obtiene el control del monitor. No es un método estático a diferencia del sueño, y es parte de la clase de objeto.

Tabla de comparación entre dormir y esperar

Parámetros de comparación Dormir Esperar
Clase El método de suspensión es parte de la clase de hilo. El método de espera es parte de la clase de objeto.
Tipo de método El sueño es un método estático Esperar no es un método estático
Técnica de llamada El método de suspensión se puede llamar desde fuera del contexto sincronizado El método de espera se puede llamar solo desde el contexto sincronizado
Desbloqueo de bloqueo El método de suspensión no libera el bloqueo del objeto, durante el tiempo de espera especificado, durante la sincronización El método Wait libera el bloqueo del objeto, para tener la oportunidad de ejecutarlo, durante la sincronización.
Declaración sueño vacío estático público () espera vacía final pública ()

¿Que es dormir?

El hilo sleep () es un método estático en el programa Java que suspende el hilo actual y lo pone en estado de espera durante un período de tiempo estipulado. Una vez que finaliza el tiempo y el estado de espera, la condición del hilo se cambia al estado ejecutable. Y luego espera a que la CPU continúe ejecutando.

El objetivo de este método es crear un retraso de unos segundos en el programa y, al mismo tiempo, aprovechar al máximo la CPU. Si el sistema está ocupado o sobrecargado, entonces el tiempo de espera o pausa es mayor y, de lo contrario, sería menor o igual al tiempo real.

El tipo de retorno del método de suspensión se puede decir vacío, ya que no devuelve ningún valor. Sleep thread no pierde el monitor ni bloquea el hilo que ya ha adquirido. Si en cualquier caso se altera el sueño, el hilo arrojaría Interrupted_Exception. La duración real de la suspensión del subproceso generalmente depende de los programadores y los temporizadores del sistema que forman parte del sistema operativo.

La sintaxis del método de suspensión es: suspensión vacía estática pública (milisegundos largos)

sueño vacío estático público (milisegundos largos, nanosegundos int)

Aquí milisegundos y nanosegundos es el tiempo durante el cual el hilo estaría inactivo.

¿Qué es esperar?

Wait () es un método utilizado para la comunicación entre subprocesos. Siempre que se usa el hilo de espera (), el hilo de llamada o actual se pausa y suspende, hasta que se invocan métodos como notificar () o notificar a todos () en el sistema.

El método notificar () despertaría el subproceso especificado mientras que notifyAll () es aplicable para cada subproceso. Cuando se sincroniza, el método de espera cede el bloqueo a los recursos. No hay valor de retorno del método Wait, por lo que se puede decir que devuelve void.

Las dos excepciones del método Wait son Interrupted_Exception (cuando el hilo actual se interrumpe durante su suspensión) e IllegalMonitorStateException (cuando el hilo actual no es el propietario del objeto en el monitor).

El método Wait es parte de la clase de objeto. El método solo es aplicable y se puede llamar a través de un bloque sincronizado. El método de espera libera la pantalla suspendida o bloqueada durante la sincronización. Y el método Wait permite exclusivamente que los subprocesos múltiples sincronizados accedan al mismo objeto uno por uno.

La sintaxis del método Wait es - public final void wait ()

Principales diferencias entre dormir y esperar

Conclusión

El método Sleep y Wait son métodos nativos de Java. Y ambos se utilizan ampliamente para hacer que el hilo en curso actual entre en un estado de condición no ejecutable. Ambos métodos se utilizan para subprocesos múltiples en el programa.

El método de suspensión brinda la opción exclusiva de bloquear la pantalla durante un período de tiempo específico que generalmente dura desde nanosegundos hasta milisegundos. Pero el método de espera bloquea o suspende la pantalla hasta que se invoca otro método, por lo que la duración del tiempo no permanece específica como durante el uso del método de suspensión.

Se diferencian entre sí en términos de funcionamiento específico como clase, método, sincronización y la duración de bloqueo y liberación y varios otros parámetros. A menudo, los programadores se confunden sobre qué método podría ser ideal para suspender el hilo. El uso de los métodos depende de requisitos como la necesidad, la urgencia y el período de tiempo del hilo actual.

Diferencia entre dormir y esperar (con mesa)