El caso de Java Thread explica en detalle la diferencia entre dormir y esperar
La mayor diferencia esencial entre ellos es: dormir() no libera el bloqueo de sincronización, esperar() libera el bloqueo de sincronización.
También hay una diferencia en el uso: dormir(. milisegundos) puede usar el tiempo especificado para que se despierte automáticamente. Si se acaba el tiempo, solo puede llamar a interreput() para interrumpir por la fuerza; esperar() se puede despertar directamente con notify().
La diferencia entre dormir y esperar sigue ahí. Existen:
1. Estos dos métodos provienen de clases diferentes: Thread y Object
2. Lo más importante es que el método de suspensión no libera el bloqueo, pero el método de espera libera el bloqueo para que otros subprocesos puedan usar bloques o métodos de control de sincronización.
3. esperar, notificar y notificar a todos solo se pueden usar en métodos de control de sincronización o bloques de control de sincronización, mientras que dormir se puede usar en cualquier lugar
synchronized(x){
x.notify() p>
//o esperar()
}
4. dormir debe detectar excepciones, mientras espera, notifica y notifica, no es necesario detectar excepciones