Saludos, bienvenido de nuevo. Scott Stanlick aquí. En estas lecciones vamos a echar un vistazo a la creación de subprocesos. Veremos el hilo principal de Java. Vamos a tener un pico en varios ciclos de vida de subprocesos. Echaremos un vistazo a los grupos de ejecución de subprocesos y planificadores de subprocesos. En esta lección en particular, Vamos a empezar echando un vistazo a los hilos propiamente dichos. Esto es típicamente donde comenzaría en una discusión sobre hilos. Así que lo primero que quiero mostrarte es mi máquina. que estoy corriendo. Tengo cuatro procesadores, así que esta es una máquina de cuatro núcleos. Podemos ver que tengo 236 procesos o aplicaciones o ID de procesos que se ejecutan en 2906 subprocesos. Así que hay muchos, muchos hilos en la máquina, muchos más hilos que procesos hay y ciertamente más subprocesos que procesadores hay. Y así estos hilos pasan por cambios de estado. Son ejecutables, están esperando, están bloqueando, están agotados, están durmiendo. Veremos, veremos cómo se desarrolla todo eso aquí en un minuto. En primer lugar, ¿qué es un hilo? Bueno, un hilo es un proceso ligero. que puede ser ejecutado independientemente por el sistema operativo. De hecho, puede haber muchos hilos todos corriendo simultáneamente. Es como una autopista de varios carriles frente a una carretera de un solo carril. Entonces podemos ejecutar múltiples subprocesos al mismo tiempo o en paralelo. Por lo tanto, hacer mucho más trabajo en la misma cantidad de tiempo. Así que lo primero que quiero mostrarte aquí es hemos creado una clase llamada subproceso de carga de archivos. Tan seguro que es un hilo, es decir, tiene un método de ejecución. Entonces, lo que este hilo va a hacer se determinará. por lo que está codificado en el método de ejecución. Porque la vida útil del hilo es el tiempo que se tarda en ejecutar el método de ejecución. Así que ahí está nuestro hilo. Va a simular la carga de un archivo. Entonces, la primera prueba dice que el enhebrado se hizo mal y vamos a ver lo que parece. Cuando ejecuto esto, debería salir y averiguar cuantos procesadores tengo que acabamos de ver tengo cuatro procesadores. Así que no estamos sobrecargando el hardware aquí, no estamos creando más hilos de lo que tenemos procesadores en este momento. Así que estoy llamando al método de ejecución en el hilo, cuatro de ellos en realidad aquí. Y puedo ver que todos estos hilos corrieron en el método principal con una prioridad de 5. Y eso le tomó 2.2098 segundos. Bueno, eso no me parece un hilo. Parece que estas cosas estaban apiladas en una sola fila. Y lo fueron. Fueron porque no llamas directamente al método de ejecución. Usted llama al método de inicio de hilo. Y el método de inicio activa la maquinaria. de modo que se creen y generen tareas en segundo plano. Así que hagámoslo correctamente y usemos el método de inicio en el hilo y veamos cómo es ese mismo escenario. Los procesadores disponibles siguen siendo cuatro, y entonces voy a ver las mismas cuatro cargas de archivos, las mismas cuatro subidas de archivos, pero ahora puedes ver que son 0.547 segundos. Y también puedo ver que no todos corrieron en el método principal. Este fue el hilo 1, el hilo 2, el hilo 3, el hilo 0. Básicamente, cada uno de ellos era hilos independientes, y ahora podemos ver que hicimos la misma cantidad de trabajo en una cuarta parte del tiempo. Así que el siguiente tipo al que vamos a echar un vistazo es cómo podemos nombrar hilos. Como por ejemplo, esto es un poco difícil para averiguar qué es qué, ¿verdad? Especialmente cuando estás mirando rastros de pila y volcados de subprocesos y ese tipo de cosas. Entonces, lo que quiero hacer es nuevamente el mismo escenario, pero quiero poner el nombre del hilo al conocimiento-ciudad-número y solo usará la "I" en el bucle de cuatro aquí. Así que deberíamos ver la ciudad del conocimiento número 1, número 2, número 3, número 4. Y nuevamente, estamos comenzando estos correctamente. Ahora, el sistema operativo arbitrariamente ejecutar estos hilos. Y eso es porque no hemos establecido una prioridad de hilo. Así que todos lo están ejecutando con prioridad 5. Así que cada uno tiene la misma prioridad. Así que no hay que decir necesariamente qué subproceso se ejecutará primero. Y como puede ver aquí, Knowledge-city-number 1 corrió primero, 0 corrió el último en realidad. Y si lo volvemos a ejecutar verás una variedad de variedades allí. Es impredecible, el orden en el que van a correr. A menos que hagas esto, por supuesto. Si establece la prioridad, si tienes un hilo en particular como digamos está imprimiendo facturas de clientes y el cliente está de pie en el mostrador, probablemente quieras el hilo que está imprimiendo tener una mayor prioridad, para dar una mayor prioridad de ejecución. Entonces, lo que estamos haciendo aquí es la misma idea. Vamos a ejecutar esta carga de archivos cuatro veces, excepto que tres de ellos tendrán una prioridad 9. Solo estoy haciendo un pequeño cambio aquí. Si "I" es 3, estableceremos la prioridad en 5. Si "I" como cualquier otra cosa que no sea 3, vamos a establecer la prioridad en 9. Entonces, lo que deberíamos ver es que la ciudad del conocimiento número 3 se ejecuta en último lugar. Porque los otros tres tenían una prioridad más alta. así que vamos a probar eso. Y lo hizo. Entonces podemos ver la ciudad del conocimiento número 2, número 1, número 0. Todos estaban corriendo en una prioridad 9 y triunfaron sobre esta ciudad-del-conocimiento-número 3, que se estaba ejecutando en la prioridad 5 por lo que se sirvió en último lugar. Gracias por ver.