Hola con todos vamos a continuar con estos ejemplos.
Ahora vamos a notar algo bien importante qué sucede con este ejemplo anterior.
El ejemplo anterior que hemos realizado vamos a darle un pequeñísimo detalle no vamos a correrlo ya
que está esperando a que se conecte un cliente para imprimirlo o para imprimir.
Entonces corremos lo que ya hemos hecho anteriormente y esta acá no aparece el Aipe y todo lo demás
y ponemos el Hola y lo envía y continúa perfecto.
Ahí está digamos funcionando como desearíamos por ahora qué pasaría si yo abro acá abro otra consola
veleidosa
vamos a abrir otra consola Adelaido para abrir otro programa que ha abierto otra consola del año en
esta otra consola Adelaido voy a abrir
el mismo ejemplo que esta corriendo esta corriendo en este instante en el otro lado
que vamos a abrir.
Lo que está corriendo en el otro lado sería el ejemplo siguiente dos.
Esto es el código pero uno nuevo que pertenece a esta consola que abierto y mire voy a correr este otro
voy a correr este otro programa.
Y qué sucede.
Lo corro y me sale digite el texto a enviar.
Y qué pasa en el servidor
en el servidor.
No pasó nada prácticamente no sé decir el cliente se conecto pero acá no pasó nada.
Cierto es el anterior no y voy a digitar un nuevo cliente que le doy enter y nuevo cliente.
Y acá el servidor ni lo notó.
Y acá simplemente lo he enviado y no aparece lo que no estaríamos acá.
Mensaje el servidor recibido digite el texto enviado entonces no está funcionando a pesar de que supuestamente
hemos dicho que soporta 5 conexiones en simultáneo.
Por qué no está funcionando.
Porque ya no está ejecutando esta línea.
Ya no está ejecutando esta línea no está ahora el programa está metido acá el programa está metido en
estas secuencias entonces esto de acá entre comillas ya no está esperando más clientes.
Entonces una forma tal vez de querer solucionarlo es esto poniéndolo dentro de Uruguay ok.
Y luego dentro de ese wey poniendo otro wey.
Con esto de acá pero igual se va a mantener el programa y entonces tampoco sería una solución nos acercaría
pero no sería una solución.
Lo importante es entender que no funciona porque no estamos acá.
Ya no estamos en esta línea sino estamos el programa está ejecutándose acá.
Para solucionar esto necesitamos trabajar con hilos no con los famosos hilos que son hilos no son programas
en paralelo que se van a ejecutar es decir acá levantamos un hilo inicializar ese hilo y es un programa
paralelo que se ejecuta que no me saca de mi programa principal sino se ejecuta en paralelo.
Entonces un hilo puedo tener yo o lo ideal sería que tenga un hilo por cada cliente sería lo ideal que
tenga un hilo por cada cliente cada vez que alguien se conecta al socket abro un hilo y este código
que estoy trabajando va en ese hilo para ese cliente se conecta a otro cliente va a ese hilo por ese
otro cliente y así cada cliente me genera un hilo y lo trabajo independientemente acá eso sería lo correcto
para trabajar con el término de cliente servidor manejando hilos.
Ok entonces voy a abrir acá un nuevo código.
Esto lo voy a resetear igual acá ya no tiene sentido lo voy a arrestar y listo.
Y acá también lo voy a cerrar.
El ejemplo que hemos hecho anteriormente o que voy a guardar.
Un nuevo ejemplo ejemplo con los ejemplos cómo vamos a hacer en este capítulo un ejemplo de cómo trabajar
con hilos o que en el siguiente en la siguiente clase lo introducimos o lo metemos con el tema de sockets
para ver cómo lo podemos acomodarnos pero en esta clase vamos a ver cómo trabaja un hilo porque en base
a esa necesidad que tenemos el hilo trabaja con una librería que es el Trebiñu no importa.
Esa es la librería para el hilo o si nos es complicado haste simplemente Artiach lo nombramos como Teach
ok.
Vamos a poner vamos a trabajar solamente con hilos vamos a poner acá vamos a crear un hilo uno que vamos
a crear un hilo uno que sería tepache punto 3 th .3 qué le vamos a poner targets igual a función y vamos
a poner lo 1 punto.
Estar así es como se inicializar el hilo así es como se inicializar el hilo.
Entonces
acá lo que estamos haciendo es el hilo.
Estamos definiendo el hilo y estamos diciendo que ejecute esta función una función de nombre vamos a
poner la función 1 esta función el nombre función uno para ese hilo inicializar el hilo y acá continúa
mi programa.
Ok entonces debe existir debe existir esta función.
1.
No debe existir esta función.
1.
Y acá es lo que va a ejecutar el hilo acá esta función es lo que va a ejecutar o debe ejecutar el hilo
o no.
Como esto lo voy a resetear miren en este hilo voy a hacer que imprima o la voy a poner en esta función
en Uruguay vamos a hacer.
Como primera demostración solamente para demostrar el hilo importante portamos el Time y voy a poner
guey Trump en esta función y punto es un segundo
y acá imprimimos Hola ok.
Entonces qué es lo que hace esto.
Esta es una función OK esto es una función que es muy separada es como crear una función adicional o
un método adicional.
Esta es una función muy aparte que en algún momento si lo deseamos usarla podemos llamar pero es una
función de nombre función que qué es lo que hace esta función.
Un bucle infinito espera un segundo y luego imprime una lista.
Lo que estamos haciendo esta función no se va a ejecutar a menos que la llamemos.
Entonces viene lo importante viene acá el hilo y lo que haces crea el hilo y se va a esta función en
este hilo.
Por esta función entonces la va a ejecutar en paralelo.
Luego continúa acá y punto estar y nada más para que no acabe el programa voy a ponerle walkthrough
y nada más.
Weintraub bueno una sentencia voy a ponerle igual cero y acá le voy a poner a igual a la semana.
Espero se va a estar ejecutando esto constantemente cada un segundo es lo que quiero demostrar o lo
que quiero llegar a orita demostrar la funcionalidad del hilo y no voy a matar mi programa principal
simplemente no va a hacer nada se va a quedar acá estancado.
Pero en esta función para estar imprimiendo y LULAC cada uno según lo sacame debería aparecer el Hola
cada segundo es un proceso paralelo.
Esto es un proceso paralelo a mi programa principal que vamos a correrlo para ver qué sale a decir que
hay una sintaxis en Godoy Cruz.
Hay un error de sintaxis
en esto hay True
por qué está esto aquí.
El Willet con minúscula no perdón el Guayas cominos listo corremos hay otro error de sintaxis ácana
tarjetas trending aquí threats Streak con mayúscula no perdón.
Esta fusión es con mayúscula vítrea que corremos otro error
finjas no tribute threats Northeast atributo threats Acoyte th R de H.
H th Retreat que a ver corremos y ahí está y miren cada un segundo están imprimiendo el Hola cada un
segundo está imprimiendo el Hola.
Es decir estoy ejecutando este proceso en paralelo porque mi programa principal no hace nada aunque
está ejecutando este proceso en paralelo.
Bueno casi voy a tener que detener el programa y con más o menos teniendo ideas de cómo funciona esto
vamos a hacer algo más interesante y vamos a hacer algo más interesante vamos a usar esta función solamente
como un contador al usar esta función solamente como un contador yo no voy a usar esto después lo voy
a borrar.
Entonces minen acá el punto lo voy a mantener.
Pero acá en esta función voy a crear una variable global Contador y este contador va a ser igual a cero
estoy creando una variable pero ahora sí tengo que indicar que esta variable será global sea válido
dentro de la función o fuera de la función.
Y este contador le estoy poniendo en cero.
Este contador lo estoy poniendo listo y acá guey punto ya no voy a imprimir nada y simplemente acá lo
que voy a hacer es contador igual a Contador más uno.
Entonces lo que va a hacer esta función o este hilo va a ser un taimados o si este hilo va a ser un
Cayma.
Eso es lo que va a hacer este va a ser un Kaymer que me va a incrementar un contador de uno en uno.
Esto va a ser un gran incremento en el contador de uno en uno listo y acá inicializar el estar acaba
continuó.
Entonces voy a poner Núm.
Igual a Contador no es igual a Contador que al inicio va a ser cero o no.
Prácticamente al inicio se está definiendo acá.
Acá lo llamo lo creo.
Va a ser feo porque se va a quedar un segundo esperando se va a hacer igual al contador.
Entonces dentro de mí Truc voy a poner IHF Signum es diferente de Contador porque solo si núm es diferente
de Contador sólo si son diferentes a Praça son iguales sí pero en algún momento Contador va a cambiar.
Entonces cuando Contador cambie ahí van a ser diferentes si no es diferente de Contador voy a imprimir
el valor de Contador y luego voy a poner núm igual a Contador igual a Contador para que ya no entro
acá.
O sea esto solamente va a imprimir cuando sean diferentes y cuando va a ser diferente cuando en el hilo
el contador se incremente en uno ahí van a ser diferentes imprime el valor de Contador y finalmente
los iguano para que ahora valga Contador y solamente cuando sean diferentes.
Entonces ahora estoy imprimiendo en mi programa principal estoy imprimiendo y mi programa principal
y estoy usando el hilo común Taymor como un contador un Taine exclusivamente.
Vamos a ver ahora si uno dos tres está imprimiendo porque son diferentes.
Entonces está imprimiendo una vez la primera vez que sean diferentes y esto se va incrementando cada
segundo porque es el timer el que lo menciona que es el taller que lo menciona.
Entonces esa es la forma de trabajar con hilos esa es la manera de trabajar con hilos.
Cuál es el proceso.
Importamos la librería definimos la función a la que va ir el hilo a trabajar y lo inicializar y luego
continúa nuestro programa principal pero acá se va a mandar con las que se va a mandar con las fusiones
ya que se va a ejecutar con el hilo en particular.
Listo.
Muchas gracias por su atención y nos vemos en el siguiente video.