Anuncios

Bienvenidos sean a este post, en este post veremos como generar multiples threads.

Anuncios

Si bien en este post vimos como crear un nuevo thread para una funcion, hoy veremos como trabajar con dos al mismo tiempo, comencemos creando un nuevo archivo llamado dos_threads.py y le agregaremos el siguiente codigo:

dos_threads.py

import threading
from time import sleep
from random import random

def correr(n):
	t = threading.current_thread()
	for cuenta in range(n):
		print(f'Hola de {t.name}! ({cuenta})')
		sleep(0.2 * random())

tin = threading.Thread(target=correr,name='Tinchicus',args=(4,))
mhm = threading.Thread(target=correr,name='Martin',args=(3,))

tin.start()
mhm.start()
tin.join()
mhm.join()
Anuncios
Anuncios

En este caso primero importaremos el modulo para los threads, luego la funcion sleep y por ultimo una funcion para generar numeros al azar, despues definiremos una funcion llamada correr que recibira un valor, dentro de esta crearemos un objeto llamado t para que almacene el thread que esta corriendo, luego usaremos un bucle for donde lo hara que se termine con el valor informado en n, dentro de este bucle mostraremos el nombre del thread y el valor iterado del bucle y finalmente una demora de sleep donde la haremos de tipo random porque sera en base al numero generado al azar por 0.2, con esto terminamos la funcion, luego crearemos dos objetos de tipo Thread donde le pasaremos dos datos distintos, primero sera la funcion que debemos asignar al thread, luego la identificacion de la misma, y por ultimo los argumentos para la funcion, con nuestros objetos creados los iniciaremos por medio de start y luego los detenemos por medio de join, con todo esto realizado podemos pasar a probarlo mediante el siguiente video

Anuncios

En el video podemos ver como al ejecutarlo nos abrira los distintos threads notificando cual es el thread actual y el valor de cuenta, si observan cuando uno de los thread llega a su fin el otro continua sin ningun inconveniente, a esto nos referiamos con la capacidad de poder trabajar con multiples threads donde cada uno corre por su cuenta sin afectar el otro pero tampoco debemos abusar de los mismos.

Anuncios

En resumen, hoy hemos visto como trabajar con mas de un thread, en este caso fueron simplemente dos pero podemos observar como uno no afecta al otro y seguimos trabajando a pesar de que uno termino antes que el otro, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50