Hilos
A continuación veremos ejemplos vistos en clases de hilos.
Los siguientes ejercicios basados en el tema Hilos, están sacados del video aportación por compañero de generaciones pasadas , a continuación se deja el video:
Ejercicio 1:
Código
Resultado
Ejercicio 2:
Código
Resultado
Ejercicio 3:
Código
Resultado
Ejercicio 4:
Código
Resultado
Ejemplo 5:
El siguiente ejemplo es complementación del video, lo podemos descargar en la descripción del video o en el siguiente link
Este ultimo ejemplo con hilos nos muestran imágenes que se despliegan aleatoriamente con sus respectivos sonidos, en el link dejado anteriormente se puede descargar las carpetas de los sonidos y de las imágenes.
Código
Resultado
Los siguientes ejercicios basados en el tema Hilos, están sacados del video aportación por compañero de generaciones pasadas , a continuación se deja el video:
Ejercicio 1:
Código
import threading #python 3.7 #python anaconda import time def hola_mundo(nombre): print ('Hola mundo ' + nombre) for i in range(1,11,1): print i time.sleep(0.5) if __name__ == '__main__': hilos = threading.Thread(target=hola_mundo('Alfredo')) hilos.start() #hilos.join() #detiene el hilo hasta que se termine la ejecucion print ('Hola mundo desde el hilo principal')
Resultado
Ejercicio 2:
Código
import threading import time def hola_mundo(nombre): print("Hola Mundo "+nombre) time.sleep(5) if __name__ == '__main__': thread = threading.Thread(target = hola_mundo,args = ("Alfredo",)) thread.start() thread.join() print ("Hola Mundo desde el hilo principal")
Resultado
Ejercicio 3:
Código
import thread import time x = 0 #Uso basico de hilos en python def contador(): global x while True: print "Hilo secundario vivo" time.sleep(1) if x==1: break print "Se ha terminado la ejecucion del hilo" def main(): global x print "Hilo main iniciado" thread.start_new(contador,()) x= input("Presione cualquier tecla para terminarla") print "Hilo main terminado" main()
Resultado
Ejercicio 4:
Código
import threading import time def hilo_nombre(name): for i in range(0,10,1): print "\n",i, " ",name time.sleep(0.5) print "El hilo : " , name, "ha terminado" def main(): hilo1 = threading.Thread(target=hilo_nombre,args=("Hilo Inicial",)) hilo2 = threading.Thread(target= hilo_nombre,args=("Hilo siguiente",)) hilo1.start() #iniciamos el hilo 1 hilo1.join() #Despues de terminado el hilo 1 hilo2.start() #inicia el hilo 2 hilo2.join()#prosigue con las demas instrucciones print "Hilo principal terminado" main() """ Un hilo no puede INICIARSE si su hilo padre (main) ha terminado -Un hilo es independiente en funcionamiento de su hilo principal -desmon: hilo que se sigue ejecutando despues de su hilo padre ha muerto """
Resultado
Ejemplo 5:
El siguiente ejemplo es complementación del video, lo podemos descargar en la descripción del video o en el siguiente link
Este ultimo ejemplo con hilos nos muestran imágenes que se despliegan aleatoriamente con sus respectivos sonidos, en el link dejado anteriormente se puede descargar las carpetas de los sonidos y de las imágenes.
Código
from Tkinter import * from PIL import Image,ImageTk import os import random import sys import pygame import time import threading carpeta=os.path.dirname(__file__) fotos=carpeta+"/Imagenes/" Sonidos=carpeta+"/Sonidos/" #img=object #sonido=object #stop=object def play(): global fotos,img,label, label2,stop stop=0 while stop==0: arreglo = ["Leon", "Gallo", "Jirafa", "Rana", "Panda", "Buho", "Elefante", "Tigre", "Lobo"] eleccion_aleatoria = str(arreglo.index(random.choice(arreglo))) figura = fotos + eleccion_aleatoria + ".png" imagen = Image.open(figura) imagen.thumbnail((500, 500), Image.ANTIALIAS) img = ImageTk.PhotoImage(imagen) label.config(image=img) label2.config(text=arreglo[int(eleccion_aleatoria)]) # Para Reproducir sonido sonido = Sonidos + eleccion_aleatoria + ".mp3" # obtengo la ruta del sonido correspondiente pygame.mixer.music.load(sonido) # Abre el archivo pygame.mixer.music.play() # Reproduce sonido time.sleep(2) print "Hilo terminado" def stop(): global stop print stop stop=1 """ def play(): """ pygame.init() # inicializa el modulo de sonido de pygame root = Tk() root.geometry("200x200") label = Label(root) label.pack() label2 = Label(root, text="", font=("Arial", 12, "bold")) label2.pack() btn1=Button(root,text="Iniciar",command=play).pack(fill=X) btn2=Button(root,text="Terminar", command=stop).pack(fill=X) hilo = threading.Thread(target=play) hilo.start() root.mainloop()
Resultado
Comentarios
Publicar un comentario