‫Bienvenido de nuevo y en este video, vamos a ver los hilos y, por lo tanto, solo vamos a hacer
‫el concepto muy básico de hilos donde verá cómo crear un hilo y cómo crear varios
‫hilos.
‫Así que comencemos usando la línea derecha de la consola de esta manera específica.
‫Entonces voy a crear múltiples mundos, por ejemplo, cuatro de ellos, y voy a decir
‫hola, mundo uno, hola, mundo dos, tres y cuatro.
‫Entonces esos son los mundos.
‫Si los ejecutamos, por supuesto, necesitamos, en primer lugar, volver a conectar la consola.
‫Entonces la consola permanece abierta y despierta.
‫Si los ejecutamos, entonces es muy básico lo que sucederá.
‫Así que van a imprimir Hello World cuatro veces en la pantalla y tenemos un mundo uno, dos, tres
‫y cuatro.
‫Está bien.
‫Entonces eso no es nada nuevo.
‫Lo hemos visto mucho antes.
‫Hay algo llamado hilo, una clase llamada hilo.
‫Y si queremos usarlo, necesitamos usar el espacio de nombres de subprocesos.
‫Entonces, usando el sistema de subprocesamiento de puntos y eso es todo.
‫Así que ahora podemos usar subprocesos para que pueda seguir adelante y usar la clase de subprocesos y, como puede ver, crea
‫y controla un subproceso, establece sus prioridades y obtiene su estado.
‫Entonces, lo que podemos hacer ahora es, por ejemplo, usar subprocesos que duermen durante un período de tiempo limitado.
‫Digamos que por 1000 milisegundos.
‫Entonces lo que hará es pausar todo nuestro programa o nuestro hilo en este caso, la amenaza principal o
‫la amenaza en la que se encuentra durante un segundo después de cómo se imprimió la palabra uno en la pantalla.
‫Y realmente podemos hacer eso después de cada declaración.
‫Así que voy a decir que solo duerma durante un período de tiempo específico.
‫Y ahí estamos.
‫Hola.
‫Somos uno, dos, tres y cuatro.
‫Entonces se detiene si hago clic en él.
‫Pero generalmente puede ver que esperó durante un segundo y después de ese segundo, imprimió lo siguiente.
‫Entonces, lo que simplemente hace, realmente detiene todo el hilo, por lo que suspende la amenaza actual durante
‫un número específico de milisegundos.
‫Entonces, eso es algo que puede hacer si quiere hacer algo después de un período de tiempo específico.
‫Pero tenga en cuenta que esto realmente está deteniendo la principal amenaza.
‫Por lo tanto, no es necesario hacer nada que tenga que hacer, digamos, en el hilo de la interfaz de usuario.
‫No usamos la interfaz de usuario aquí.
‫Estamos usando una aplicación de consola en este caso.
‫Pero si usa WP, por ejemplo, para tener una interfaz de usuario y analiza el hilo principal durante un segundo, eso significa que
‫la interfaz de usuario no responderá durante un segundo completo.
‫Y eso es algo que el usuario no quiere.
‫Y ese será un comportamiento muy malo que no deberías hacer.
‫Pero eso es generalmente solo para que entiendas lo que puedes hacer con los hilos aquí, ¿verdad?
‫Por lo tanto, puede representar una amenaza durante un período de tiempo específico.
‫Pero estamos usando un solo hilo.
‫Es la principal amenaza.
‫Y si desea obtener más información al respecto, debe depurar.
‫Y para hacerlo, agregamos un punto aquí.
‫Entonces, solo para depurar el punto donde simplemente presiona en esa barra aquí a la izquierda, digamos que agregue la
‫línea nueve donde comienza el método principal, y luego inicia el programa y, como puede ver, no se mostrará nada porque
‫se detiene aquí mismo. .
‫Así que ahí es donde estamos actualmente.
‫Ahí es donde está el cursor.
‫Y para ver ahora las tareas, debemos ir a las ventanas de depuración y luego seleccionar las amenazas aquí.
‫O puede presionar controlar todos los archivos H.
‫Así que voy a abrir hilos.
‫Y como puede ver, ahora están flotando para mí y los colocaré aquí, en el lado
‫izquierdo.
‫Y ahora puede ver los hilos que se están ejecutando.
‫Y en nuestro caso solo vemos el hilo principal.
‫Entonces, solo hay un hilo y tiene una idea administrada de cero.
‫Entonces esa es nuestra principal amenaza y generalmente está haciendo todo lo que está dentro de nuestro método principal.
‫Entonces, si voy al siguiente paso.
‫Como puede ver, todavía estamos en el hilo principal y esperamos un segundo, vemos cómo el mundo realmente si lo
‫abrimos, ellos pueden verlo.
‫Entonces ahora es un mundo total.
‫Tres, dormimos durante un segundo y luego espera durante horas para dar el siguiente paso para que pueda tener 10 para
‫ir al siguiente paso.
‫Y luego muestra Helliwell por un segundo más tarde.
‫Sí, para eso estamos todos.
‫Y luego aparece esta línea roja.
‫Así que ahora voy a presionar algo como enter o lo que sea y aquí e ir al siguiente paso.
‫Y como puede ver, seguimos siendo la principal amenaza.
‫Y nuestro programa se cierra, así que ya no hay amenazas, así que eso es bueno y todo, pero esa es solo nuestra principal amenaza y eso es
‫un poco aburrido.
‫Queremos ver cómo crear hilos, y para eso estamos aquí.
‫Así que sigamos adelante y creemos múltiples amenazas por nuestra cuenta, porque lo que sucede aquí es que se hace de
‫forma secuencial.
‫Así que paso a paso, una fila tras otra.
‫Pero si queremos hacer las cosas en paralelo, podemos crear nuestro propio hilo porque no queremos que se ejecute en
‫el hilo principal.
‫Pero queríamos correr en paralelo.
‫Entonces, lo que voy a hacer es crear una nueva amenaza aquí.
‫Solo voy a decir nuevo, luego lo llamaré amenaza.
‫Así que solo estoy usando la cláusula de amenaza aquí.
‫Y necesita soportes y soportes de nuevo.
‫Y después de esos paréntesis, el segundo aquí, usa paréntesis sinusoidales y rizados iguales y más grandes.
‫Y luego, después de que el corchete aquí se cierra, debe comenzar.
‫Así es como comienzas un hilo.
‫Así que he creado un nuevo hilo y comienza de inmediato porque llamo a comenzar aquí.
‫Ese es solo el método de inicio que nos llama al sistema operativo para cambiar el estado de la instancia actual
‫al estado del hilo en ejecución.
‫Entonces, este hilo tendrá este estado de hilo en ejecución, lo que significa que simplemente ejecutará lo que
‫esté dentro de sus llaves.
‫Ahí es donde podemos agregar nuestro código que queremos ejecutar cada vez que se llame a esta amenaza.
‫Así que digamos que este hilo aquí es nuestro hilo uno.
‫Así que voy a escribir algo como el hilo uno, el hilo CW uno.
‫Y encima de eso, me voy a dormir un segundo.
‫Así que duerme durante 1000 milisegundos, que es un segundo.
‫Entonces eso es lo que va a hacer este hilo.
‫Y lo que voy a hacer es colocar varios subprocesos debajo de eso.
‫Así que enhebra uno, dos, tres y cuatro.
‫Así que voy a cambiarles el nombre y los voy a comentar.
‫Los que teníamos antes, así que la consola se alinea y ahora vamos a ejecutarlo.
‫Y ahí estamos, como pueden ver, surgió todo al mismo tiempo, así que esperó un segundo y
‫luego todos aparecieron al mismo tiempo.
‫Entonces, ¿qué estaba pasando allí?
‫Permítanme entrar en ese punto aquí y tal vez en el punto.
‫Sí, ahí mismo.
‫Así que ejecutémoslo de nuevo.
‫Ahora vemos que nuestro programa se detiene aquí, así que ahí es donde está, pero al mismo tiempo
‫aquí, en la ventana del hilo aquí en la parte inferior, puede ver que ya hay dos hilos abiertos y un hilo de trabajo
‫sin nombre.
‫Y otra amenaza trabajadora sin nombre también.
‫Entonces tenemos esta nueva amenaza que ya se está ejecutando.
‫Y luego también se abre una de las otras amenazas.
‫Y como puede ver, la principal amenaza también.
‫Entonces hay tres amenazas al mismo tiempo.
‫Ahora, vayamos al siguiente paso.
‫Como puede ver, en ese punto, de repente hay cuatro amenazas.
‫Y así son los cuartos que tenemos aquí.
‫Entonces, cuando comenzó el primero, solo tal vez el segundo ya estaba listo, pero los otros aún no lo
‫estaban.
‫Y ahora, en ese punto en el que la amenaza se extiende mil milisegundos después de transcurrido un milisegundo o incluso
‫menos, puede ver que las otras amenazas ya han comenzado.
‫Entonces tenemos cuatro subprocesos ejecutándose al mismo tiempo.
‫Así que aquí tenemos una solución de subprocesos múltiples.
‫Y si doy el siguiente paso, bueno, como puede ver, ya se muestran las amenazas dos, tres y cuatro.
‫Pero la amenaza uno de la línea derecha de la consola, como puede ver, aún no se muestra.
‫Así que se ejecutan en paralelo, pero no son perfectamente precisos, como puede ver.
‫Por lo que puede haber ligeras diferencias en el tiempo que deben ejecutarse.
‫Así que voy a ir al siguiente paso como este camino aquí.
‫Y como puede ver ahora, la amenaza uno también está terminada.
‫Así que a pesar de las amenazas.
‫Están en un orden específico aquí, en mi código, se inician más o menos al mismo tiempo y, como puede
‫ver, no es necesario que estén en el orden exacto como pensamos.
‫Por lo tanto, no estará terminado en el orden exacto en que los hemos colocado aquí.
‫Pero según la rapidez con la que pudieran terminar o ejecutar cualquiera que fuera el código.
‫Entonces puede suceder que este código necesite un poco más de tiempo que ese o mucho más que el otro.
‫Entonces, eso es lo que tiene que sacar de esto para poder trabajar con amenazas, pero debe
‫ser muy, muy cuidadoso porque hay muchas cosas que podrían salir mal.
‫Y voy a cubrir algunos de ellos y les voy a mostrar o les voy a dar y voy a cubrir algunos de
‫ellos.
‫Y también voy a compartir enlaces contigo.
‫Podemos leer mucho más sobre eso.
‫Así que esa es la idea básica de cómo crear amenazas.
‫Como puede ver, así es como puede configurar las cosas.
‫Por lo tanto, las amenazas son generalmente un pequeño trabajo o un trabajo que se ejecuta y puede ejecutar
‫varias cosas al mismo tiempo si tiene varios cursos en su procesador.
‫Entonces, digamos que tiene un procesador de cuatro núcleos, luego se pueden ejecutar cuatro subprocesos o cuatro
‫procesadores al mismo tiempo.
‫Si tiene, digamos, solo un procesador, entonces solo se puede ejecutar un hilo o una tarea a la vez,
‫nunca sucederá que se ejecutarán en paralelo porque este procesador solo hace una cosa específica a
‫la vez.
‫Eso significa que si sabe que está trabajando con un procesador multinúcleo o que su aplicación se
‫ejecutará en un procesador multinúcleo, puede trabajar con múltiples amenazas.
‫De lo contrario, se encontrará con problemas.
‫Pero en general, cómo funciona, si solo tiene un núcleo, se ejecutará el hilo principal.
‫Y solo si la amenaza principal está inactiva, seguirá adelante y hará otras cosas para no ejecutar otras
‫amenazas.
‫Digamos que tiene una interfaz de usuario y en esa interfaz de usuario solo muestra cosas, tiene un botón.
‫Luego, si coloca el cursor sobre el botón, cambiará su apariencia, cosas así.
‫Eso es algo que hace la principal amenaza.
‫Pero si la amenaza principal no está ocupada, comenzarán las otras amenazas.
‫Entonces, si tiene algo que debe ejecutarse en segundo plano, entonces eso se hará cada vez que la amenaza uno,
‫la amenaza principal no esté ocupada o las amenazas cero en realidad este año.
‫Eso es sobre amenazas.
‫Y analizaremos las amenazas un poco más, por supuesto.
‫Pero, en general, eso es lo que quería mostrarte para empezar.