Dormir vs Esperar: Diferencia y Comparación

Java tiene varios métodos para llevar a cabo ciertas acciones.

Un método es un grupo de código que se ejecuta solo cuando se le llama; y puede o no devolver un resultado.

Métodos como sueño y esperar se utilizan para subprocesos múltiples. Ambos hacen una pausa y envían el hilo a la espera, pero tienen grandes diferencias en el funcionamiento.

Puntos clave

  1. “Dormir” es un estado de reposo en el que el cuerpo y la mente están inactivos, mientras que “Esperar” es permanecer en un lugar o retrasar la acción hasta que ocurra un evento específico.
  2. “Dormir” es una función corporal natural y necesaria, mientras que “Esperar” es una acción voluntaria que se puede elegir o evitar.
  3. El “dormir” se asocia con la noche, mientras que la “espera” puede ocurrir en cualquier momento del día.

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 subproceso 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 invoquen métodos específicos.

Dormir vs Esperar

Durante el uso del método de suspensión, el subproceso actual no pierde la propiedad del monitor.

Sleep es un método estático y es parte del hilo de la clase. Una vez que finaliza el tiempo de espera, el subproceso 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 Java programa para ordenar al subproceso actual que espere hasta que no se invoque otro subproceso para ese objeto.

El subproceso luego continúa con la ejecución una vez que obtiene el control del monitor.

No es un método estático, a diferencia de sleep, y es parte de una clase de objeto.

Tabla de comparación

Parámetros de comparaciónCalidad de SueñoEsperar
ClaseEl método de suspensión es una parte de la clase de subprocesos. El método de espera es parte de la clase de objeto.
Tipo de métodoEl sueño es un método estático.Wait no es un método estático
técnica de llamadaEl método de suspensión se puede llamar desde fuera del contexto sincronizadoEl método de espera solo se puede llamar desde el contexto sincronizado
Desbloqueo de bloqueoEl método de suspensión no libera el bloqueo del objeto durante el tiempo de espera especificado durante la sincronizaciónEl método de espera libera el bloqueo del objeto, para tener la oportunidad de ejecutarlo, durante la sincronización
Declaraciónsueño de vacío estático público () espera vacía final pública ()

¿Que es dormir?

El subproceso sleep() es un método estático en el programa Java que suspende el subproceso actual y lo pone en estado de espera durante un período de tiempo estipulado.

Lea también  JSP vs HTML: diferencia y comparación

Una vez que finaliza el estado de espera y el tiempo, la condición del subproceso cambia a un estado ejecutable. Y luego espera a que la CPU siga ejecutándose.

El objetivo de este método es crear un retraso de unos segundos en el programa y, al mismo tiempo, tener la máxima utilización de 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 devolución del método de suspensión se puede decir nulo, ya que no devuelve ningún valor.

El subproceso de suspensión no pierde el monitor ni bloquea el subproceso que ya ha adquirido.

Si, en cualquier caso, se interrumpe el sueño, el subproceso arrojaría Interrupted_Exception.

El actual duración El motivo por el cual el hilo se suspenderá depende de los programadores y 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 de vacío estático público (milisegundos largos, nanosegundos int)

Aquí, milisegundos y nanosegundos son el tiempo durante el cual el subproceso dormiría.

sueño

¿Qué es Espera?

Wait() es un método utilizado para la comunicación entre subprocesos.

Cada vez que se utiliza el subproceso wait(), el subproceso actual o de llamada se pausa y se suspende hasta que se invoquen métodos como notificar() o notificarTodos() en el sistema.

El método de notificación () despertaría subprocesos específicos, mientras que el método de notificación () es aplicable para cada subproceso.

Cuando se sincroniza, el método de espera cede el bloqueo de los recursos.

No hay valor de retorno del método Wait, por lo que se puede decir que devuelve void.

Lea también  Bluehost vs Shopify: diferencia y comparación

Las dos excepciones del método Wait son Interrupted_Exception (cuando el subproceso actual se interrumpe durante su suspensión) e IllegalMonitorStateException (cuando el subproceso 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()

esperar

Principales diferencias entre dormir y esperar

  1. El método Sleep hace que el subproceso entre en suspensión durante un período de tiempo específico y particular, durante un tiempo de espera específico a menos que caduque o se interrumpa, mientras que el método Wait hace que el subproceso entre en suspensión hasta que se invoquen métodos como notify() o notifyAll().
  2. El método Sleep se ejecuta en un subproceso, mientras que el método Wait se ejecuta en un objeto.
  3. El método de suspensión se usa para la sincronización de tiempo, mientras que el método de espera se usa para la sincronización de subprocesos múltiples.
  4. Durante el subproceso de espera, los subprocesos múltiples sincronizados pueden acceder al mismo objeto de forma adyacente, mientras que en el subproceso de suspensión, los subprocesos múltiples sincronizados tienen que esperar a que termine la suspensión del subproceso actual.
  5. El método de espera libera el bloqueo o el monitor, mientras que el método de suspensión no libera el monitor durante la suspensión o la espera del subproceso actual.
Diferencia entre X e Y 2023 05 10T161359.507
Referencias
  1. https://pdfs.semanticscholar.org/51fd/24ae444910fd39b117bb3044a12591f038fa.pdf
  2. https://dl.acm.org/doi/pdf/10.1145/289524.289572

Última actualización: 31 julio, 2023

punto 1
¿Una solicitud?

Me he esforzado mucho en escribir esta publicación de blog para brindarle valor. Será muy útil para mí, si considera compartirlo en las redes sociales o con sus amigos/familiares. COMPARTIR ES ♥️

18 pensamientos sobre “Dormir vs Esperar: Diferencia y Comparación”

  1. El artículo aclara eficazmente las variaciones entre los métodos de sueño y espera, proporcionando una comparación clara y concisa. Los detalles de sincronización y liberación de bloqueo son particularmente útiles.

    Responder
    • El artículo hace un excelente trabajo al delinear las diferencias entre los métodos de sueño y espera. La información sobre sincronización y apertura de cerradura se presenta con claridad y precisión.

      Responder
  2. La explicación detallada de los métodos de sueño y espera es excelente. Este artículo es un activo valioso para cualquiera que busque mejorar su comprensión de estos conceptos fundamentales de Java.

    Responder
  3. Esta es una comparación completa de los métodos de suspensión y espera en Java. El artículo describe claramente las diferencias clave y proporciona una tabla comparativa útil como referencia.

    Responder
    • El desglose detallado de los métodos de sueño y espera es muy revelador. Es valioso comprender los matices y funcionalidades de estos métodos en la programación Java.

      Responder
    • La explicación de los métodos de dormir y esperar me pareció informativa y precisa. La tabla de comparación es particularmente útil para resumir las características contrastantes de estos métodos.

      Responder
  4. El artículo ofrece una comparación exhaustiva entre los métodos de suspensión y espera en Java. Agradezco las explicaciones detalladas, que ofrecen información valiosa sobre sus funcionalidades.

    Responder
    • El artículo me pareció informativo y bien elaborado. Las explicaciones de los métodos de suspensión y espera conducen a una mejor comprensión de su uso y sus implicaciones en Java.

      Responder
  5. El artículo ofrece una comparación detallada de los métodos de suspensión y espera, proporcionando información completa sobre sus comportamientos y funcionalidades dentro de la programación Java.

    Responder
  6. Este artículo es un recurso valioso para comprender los métodos de suspensión y espera en Java. Las explicaciones son detalladas y la tabla comparativa ofrece una referencia conveniente para comprender las disparidades entre estos métodos.

    Responder
    • Comparto el mismo sentimiento, Vmorgan. La tabla de comparación proporciona una descripción clara de las diferencias y las descripciones detalladas mejoran la comprensión de los métodos de sueño y espera.

      Responder
  7. Gracias por el artículo. Agradezco la explicación detallada de las diferencias entre los métodos de suspensión y espera. Es bueno tener una comprensión clara de cómo funcionan en el programa Java.

    Responder
    • Tu explicación del concepto está muy bien estructurada y es fácil de entender. Estoy de acuerdo en que es crucial tener claridad sobre estos métodos fundamentales.

      Responder
  8. La distinción entre los métodos de suspensión y espera se explica detalladamente en este artículo. La explicación del comportamiento del método de espera durante la sincronización me pareció particularmente esclarecedora.

    Responder
    • Estoy de acuerdo, Freya. El artículo proporciona una explicación clara y precisa del comportamiento del método de espera, lo que facilita la comprensión de su funcionalidad en Java.

      Responder
    • La descripción del artículo sobre los comportamientos y los tipos de retorno de los métodos de suspensión y espera es muy informativa. Comprender estas diferencias es esencial para un subproceso múltiple eficaz en Java.

      Responder
  9. El artículo me pareció muy informativo y revelador. El análisis en profundidad de los métodos de suspensión y espera contribuye en gran medida a comprender sus matices e implicaciones en Java.

    Responder
  10. El artículo proporciona un análisis completo de los métodos de suspensión y espera en Java. Las explicaciones están bien organizadas y contribuyen en gran medida a una comprensión más profunda de estos métodos fundamentales.

    Responder

Deja un comentario

¿Quieres guardar este artículo para más tarde? ¡Haz clic en el corazón en la esquina inferior derecha para guardar en tu propio cuadro de artículos!