Red de conocimiento del abogados - Ley de patentes - El caso de Java Thread explica en detalle la diferencia entre dormir y esperar

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()

//o esperar()

}

4. dormir debe detectar excepciones, mientras espera, notifica y notifica, no es necesario detectar excepciones