Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre dormir y rendir

La diferencia entre dormir y rendir

La diferencia entre rendimiento y suspensión:

La principal diferencia entre rendimiento y suspensión es que el método de rendimiento suspende temporalmente el subproceso que se está ejecutando actualmente para permitir subprocesos en espera con la misma prioridad que Oportunidad para ejecutar.

Si no hay subprocesos en espera, o todos los subprocesos en espera tienen baja prioridad, entonces el subproceso continuará ejecutándose. El programador de subprocesos determina cuándo continuará ejecutándose el subproceso que ejecuta el método de rendimiento, y diferentes fabricantes pueden tener diferentes comportamientos.

El método de rendimiento no garantiza que el subproceso actual se detenga o se detenga, pero puede garantizar que el subproceso actual cederá la CPU al llamar al método de rendimiento.

La diferencia entre esperar y dormir en Java o la diferencia entre dormir y producir en Java es una de las preguntas más frecuentes en las entrevistas Java o entrevistas multiproceso. Entre estos tres métodos que se pueden utilizar para pausar subprocesos en Java, los métodos de suspensión y rendimiento se definen en la clase Thread y el método de espera se define en la clase Object. Esta también es una pregunta que se hace a menudo en las entrevistas.

La diferencia clave entre esperar y dormir es que la espera se usa para la comunicación entre subprocesos, mientras que la suspensión se usa para pausar el hilo actual por un corto tiempo. Una diferencia más obvia es que cuando un hilo llama al método de espera, liberará el monitor y bloqueará el objeto que contiene, pero cuando llama al método sleep(), no liberará el monitor que contiene.

Volviendo al método yield(), es algo diferente de los métodos de espera y suspensión. Solo libera los recursos de CPU ocupados por el subproceso, lo que permite que otros subprocesos tengan la oportunidad de ejecutarse, pero lo hace. No garantiza que un subproceso específico pueda obtener recursos de CPU.

Quién obtiene la CPU depende completamente del programador. En algunos casos, el subproceso que llama al método de rendimiento incluso obtendrá el recurso de la CPU nuevamente. Por lo tanto, confiar en el método de rendimiento no es confiable y solo puede hacer lo mejor que puede.

Referencia del contenido anterior: Enciclopedia Baidu - Lenguaje de programación Java