Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
t = MiThread(i)<br />
t.start()<br />
t.join()<br />
Threads<br />
El método join se utiliza <strong>para</strong> que el hilo que ejecuta la llamada se<br />
bloquee hasta que finalice el thread sobre el que se llama. En este caso<br />
se utiliza <strong>para</strong> que el hilo principal no termine su ejecución antes que<br />
los hijos, lo cuál podría resultar en algunas plataformas en la terminación<br />
de los hijos antes de finalizar su ejecución. El método join puede<br />
tomar como parámetro un número en coma flotante indicando el<br />
número máximo de segundos a esperar.<br />
Si se intenta llamar al método start <strong>para</strong> una instancia que ya se está<br />
ejecutando, obtendremos una excepción.<br />
La forma recomendada de crear nuevos hilos de ejecución consiste en<br />
extender la clase Thread, como hemos visto, aunque también es posible<br />
crear una instancia de Thread directamente, e indicar como parámetros<br />
del constructor una clase ejecutable (una clase con el método especial<br />
__call__) o una función a ejecutar, y los argumentos en una tupla<br />
(parámetro args) o un diccionario (parámetro kwargs).<br />
import threading<br />
def imprime(num):<br />
print “Soy el hilo”, num<br />
print “Soy el hilo principal”<br />
for i in range(0, 10):<br />
t = threading.Thread(target=imprime, args=(i, ))<br />
t.start()<br />
Además de los parámetros target, args y kwargs también podemos<br />
pasar al constructor un parámetro de tipo cadena name con el nombre<br />
que queremos que tome el thread (el thread tendrá un nombre<br />
predeterminado aunque no lo especifiquemos); un parámetro de tipo<br />
booleano verbose <strong>para</strong> indicar al módulo que imprima mensajes sobre<br />
el estado de los threads <strong>para</strong> la depuración y un parámetro group, que<br />
por ahora no admite ningún valor pero que en el futuro se utilizará<br />
<strong>para</strong> crear grupos de threads y poder trabajar a nivel de grupos.<br />
101