You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Python</strong> para todos<br />
por lo tanto, menos cambios de contexto. También podemos plantearnos<br />
el utilizar procesos en lugar de threads, como ya comentamos, utilizando<br />
por ejemplo el módulo processing; escribir el código en el que<br />
el rendimiento sea crítico en una extensión en C o utilizar Iron<strong>Python</strong><br />
o Jython, que carecen de GIL.<br />
Threads en <strong>Python</strong><br />
El trabajo con threads se lleva a cabo en <strong>Python</strong> mediante el módulo<br />
thread. Este módulo es opcional y dependiente de la plataforma, y<br />
puede ser necesario, aunque no es común, recompilar el intérprete para<br />
añadir el soporte de threads.<br />
Además de thread, también contamos con el módulo threading que se<br />
apoya en el primero para proporcionarnos una API de más alto nivel,<br />
más completa, y orientada a objetos. El módulo threading se basa<br />
ligeramente en el modelo de threads de Java.<br />
El módulo threading contiene una clase Thread que debemos extender<br />
para crear nuestros propios hilos de ejecución. El método run<br />
contendrá el código que queremos que ejecute el thread. Si queremos<br />
especificar nuestro propio constructor, este deberá llamar a threading.<br />
Thread.__init__(self) para inicializar el objeto correctamente.<br />
import threading<br />
class MiThread(threading.Thread):<br />
def __init__(self, num):<br />
threading.Thread.__init__(self)<br />
self.num = num<br />
def run(self):<br />
print “Soy el hilo”, self.num<br />
<strong>Para</strong> que el thread comience a ejecutar su código basta con crear una<br />
instancia de la clase que acabamos de definir y llamar a su método<br />
start. El código del hilo principal y el del que acabamos de crear se<br />
ejecutarán de forma concurrente.<br />
print “Soy el hilo principal”<br />
for i in range(0, 10):<br />
104