Red de conocimiento informático - Aprendizaje de código fuente - Introducción a la rueda del tiempo (principios básicos de la práctica de RPC de Geek Time)

Introducción a la rueda del tiempo (principios básicos de la práctica de RPC de Geek Time)

1. ¿Qué es una rueda de reloj?

Este problema no es difícil de resolver, sólo necesitamos encontrar formas de reducir las operaciones de escaneo adicionales. Por ejemplo, un lote de mis tareas programadas se ejecutará después de 5 segundos y comenzaré a escanear estas tareas programadas después de 4,9 segundos, lo que ahorra enormemente la CPU. En este momento, podemos utilizar el mecanismo de la rueda del reloj. Primero echemos un vistazo a los relojes que se utilizan en la vida.

Lo conoces. Este reloj tiene manecillas de hora, minutos y segundos. Después de que el segundero salta una vez, es decir, después de saltar 60 escalas, el minutero salta una vez, el minutero salta 60 escalas y la manecilla de las horas se mueve un paso. El principio de implementación de la rueda del reloj se refiere al principio de latido del reloj en la vida.

En el mecanismo de la rueda de reloj existen los conceptos de ranuras y ruedas de reloj. La franja horaria equivale a la escala del reloj y la rueda del reloj equivale a un ciclo de las manecillas de segundos y minutos. Pondremos cada tarea en el periodo de tiempo correspondiente. El mecanismo de funcionamiento de la rueda del reloj es el mismo que el del reloj en la vida. Cada vez que se fija una unidad de tiempo, saltará de un intervalo de tiempo al siguiente, lo que equivale a que nuestro segundero salte una vez. La rueda del reloj se puede dividir en varias capas. La unidad de tiempo de cada ranura en la siguiente capa de la rueda del reloj es el tiempo del ciclo completo de la rueda del tiempo actual, que equivale a 1 minuto igual a 60 segundos; ha saltado todas las ranuras en un ciclo, la tarea de sacar una ranura de la siguiente rueda del reloj se reasignará a la rueda del reloj actual, y la rueda del reloj actual comenzará a saltar desde la ranura 0, lo que equivale a 1 segundo de el siguiente minuto. Para ayudar a todos a comprender el mecanismo operativo de la rueda del reloj, utilizamos un escenario de ejemplo para simularlo y analizarlo juntos. Supongamos que nuestra rueda de reloj tiene 10 ranuras, el período de una rueda de reloj es 1 segundo, luego la unidad de tiempo de cada ranura es 100 milisegundos y el período de la siguiente rueda de tiempo es 10 segundos, la unidad de tiempo de cada ranura es 1 segundo , la rueda del reloj actual acaba de inicializarse y es la 0.ª.

Ahora tenemos tres tareas, a saber, la tarea A (ejecutada después de A (90 milisegundos)), la tarea B (ejecutada después de 610 milisegundos) y la tarea C (ejecutada después de 1 segundo y 610 milisegundos). Agregamos estas tres tareas a la rueda del reloj, la tarea A se coloca en la ranura 0, la tarea B se coloca en la ranura 6 y la tarea C se coloca en el siguiente nivel.

Tan pronto como la tarea A se coloque en la rueda del reloj, se ejecutará inmediatamente. Debido a que se coloca en la ranura 0, la rueda del tiempo actual simplemente salta a la ranura 0 (de hecho, no ha comenzado). saltando todavía, el estado es salto 0); 600 milisegundos Después de eso, la rueda del tiempo ha saltado 6 veces, el intervalo de tiempo actual es el sexto intervalo de tiempo y todas las tareas del sexto intervalo de tiempo se eliminan y ejecutan 1 segundo; Más tarde, el noveno salto de la rueda del reloj actual ha terminado y el salto cero ha comenzado de nuevo. En este momento, la rueda del reloj del siguiente nivel saltó de cero a 1, y la tarea de la ranura 1 se elimina y se asigna a la rueda del reloj actual. En este momento, la tarea C se saca de la rueda del reloj del siguiente nivel y se coloca en la sexta ranura de la rueda del reloj actual. Después de 1 segundo y 600 milisegundos, se ejecuta la tarea C.