CodeGym /Cursos /Núcleo de Java /rendimiento - saltarse un movimiento

rendimiento - saltarse un movimiento

Núcleo de Java
Nivel 7 , Lección 7
Disponible

"¡Hola, Amigo! Hoy tendremos una breve pero interesante lección. Les hablaré sobre yield , un método estático de la clase Thread".

Ellie ya te ha dicho que el procesador cambia constantemente entre subprocesos. A cada subproceso se le asigna una pequeña porción de tiempo de procesador, llamado cuanto . Cuando expira este tiempo, el procesador cambia a otro subproceso y comienza a ejecutar sus comandos. La llamada Thread.yield()le permite finalizar el cuanto del subproceso actual antes de tiempo. En otras palabras, le dice al procesador que cambie al siguiente hilo.

"Pero, ¿por qué un subproceso necesitaría ceder su tiempo a otro subproceso?"

"No sucede a menudo. Llamar a yield significa que "nuestro hilo ha terminado con su turno antes de lo previsto" y que el comando después de yield comenzará con un cuanto de tiempo completo. Por lo tanto, las posibilidades de que se interrumpa son menores. Especialmente si se trata de un comando corto, es decir, no llevará mucho tiempo ejecutarlo. Este enfoque se puede utilizar para optimizar algunos procesos".

También puedo decirte que Thread.sleep(0) en realidad funciona de la misma manera. Creo que no usará mucho el método de rendimiento al principio, pero es útil conocerlo.

Comentarios (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Antonio Lopez Nivel 81 Expert
25 noviembre 2023
Segun entiendo hasta ahora Thread.sleep() es para detener el hilo hasta que pase un periodo de tiempo especificado como parametro. Y otro metodo tambien para detener Threads es join() para que un thread espera a que otra thread termine. Thread.yield() es para esperar el hilo actual y otros hilos de la misma prioridad se ejecutan. Y tambien tienen otras caracteristicas como que join es final y no static, pero yield() sleep() son static y no final. Aun asi los veremos mas adelante en el curso.