2012-09-26 14 views
5

He estado experimentando con códigos para varios métodos de tiempo. Una forma de crear un retraso es ejecutar un hilo usando thread.sleep (millis), pero está muy bien establecido que el momento en que el hilo "despierta" no es tan exacto y puede ser antes o después de este tiempo. Luego me encontré con la definición donde hay una opción para usar thread.sleep (millis, nanos) donde nanos da "precisión de nanosegundos adicionales".Exactitud del sueño del hilo

Mi pregunta es si thread.sleep() no es tan preciso durante milisegundos, ¿para qué sirve agregar los nanos extra que nos da? ¿Agregar este valor hace que el método de suspensión sea de repente más preciso, como forzar al sistema operativo a ser más estricto o permitir una mayor prioridad cuando lo monitorea? Además, .join() tiene la misma opción, supongo que la respuesta a la parte thread.sleep() es similar a la parte .join(). Gracias.

Respuesta

1

Este enlace le dará una buena idea de la precisión de Thread.sleep y dependencia OS https://blogs.oracle.com/dholmes/entry/inside_the_hotspot_vm_clocks

+0

gracias por compartir el enlace Royston, hay algunas tidbbits hay más de lo que sabía antes, pero no ayuda mi pregunta. Todavía me pregunto cómo thread.sleep (millis, nanos) es diferente de thread.sleep (millis). – Tam

+1

O esa referencia cambió o no la leí lo suficientemente bien la primera vez (más que probable, estaba cansado). Realmente ayuda. ¡Gracias! – Tam

+1

El enlace está muerto. Incluya fragmentos la próxima vez para que esta respuesta no se pierda en el olvido cuando los sitios web cambian las URL. – Silmarilos

Cuestiones relacionadas