threads thread stop semaforos manejo hilos example entre ejemplos detener comunicacion como python multithreading yield

stop - ¿Cómo funciona un Threading. Thread produce el resto de su quantum en Python?



thread python 2.7 example (3)

Lea en Global Interpreter Lock (GIL).

Por ejemplo: http://jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/

También: http://www.pyzine.com/Issue001/Section_Articles/article_ThreadingGlobalInterpreter.html

Haga esto en su código si debe hacer una espera de ocupado (por ejemplo, sondear un dispositivo).

time.sleep( 0.0001 )

Esto cederá al programador de hilos.

Además, recopilé algunas notas y referencias en http://homepage.mac.com/s_lott/iblog/architecture/C551260341/E20081031204203/index.html

Tengo un hilo que está sondeando una pieza de hardware.

while not hardware_is_ready(): pass process_data_from_hardware()

Pero hay otros hilos (¡y procesos!) Que podrían tener cosas que hacer. Si es así, no quiero quemar la CPU verificando el hardware en todas las demás instrucciones. Ha pasado un tiempo desde que trabajé con el enhebrado, y cuando lo hice no era Python, pero creo que la mayoría de las bibliotecas de subprocesos tienen una función de yield o algo que permite que un hilo le diga al programador "Dale a los otros hilos una oportunidad". "

while not hardware_is_ready(): threading.yield() # This function doesn''t exist. process_data_from_hardware()

Pero no puedo encontrar ninguna referencia a algo como esto en la documentación de enhebrado. Python tiene una declaración de yield , pero estoy bastante seguro de que es algo completamente diferente (para hacer con generadores).

¿Qué es lo correcto para hacer aquí?


Si está haciendo esto en * nix, puede encontrar que la biblioteca de selección es útil. Kamaela también tiene algunos componentes que pueden serle útiles, pero puede requerir un poco de cambio de paradigma.


time.sleep(0) es suficiente para ceder el control; no es necesario usar un épsilon positivo. De hecho, time.sleep(0) SIGNIFICA "ceder a cualquier otro hilo que esté listo".