← Volver

Cómo retornar un valor desde un hilo («thread»)

No es posible devolver un valor vía return desde una función que se ejecuta en otro hilo y obtenerlo en el hilo principal. Sin embargo, se puede simular este procedimiento usando una cola vía la clase estándar queue.Queue, que provee un tipo de dato para compartir información entre hilos de forma segura.

import queue
import threading
import time

def worker(q: queue.Queue):
"""
Esta función se ejecuta en otro hilo.
"""
# Ejecutar alguna operación pesada.
time.sleep(3)
# Poner el valor de rertorno del hilo en la cola.
# Reemplácese 5 por el valor que se quiera devolver.
q.put_nowait(5)

# Cola para guardar el resultado del hilo.
q = queue.Queue()
# Iniciar el hilo.
t = threading.Thread(target=worker, args=(q,))
t.start()
# Esperar a que finalice.
t.join()
# Obtener el resultado.
result = q.get_nowait()
print("Resultado del hilo:", result)

threading hilos queue


👨‍💻 ¡Ya lanzamos el curso oficial de Recursos Python en Udemy! Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter en 2024.

🐍 También te puede interesar:


💡 Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.