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