thread = Thread.new do
# cleanup first
system("/sbin/pump -k -i \"#{Global.device}\"")
...
end
Yo lo traduje a python de la siguiente forma:
th =thread.start_new_thread(self.Thread_func,(self,None)); #hack
Pero no ejecutaba la función que le especificaba. Pensé los argumentos podrían estar mal y probé unas cosas en un fichero de pruebas:
from threading import Thread;
import thread;
class B:
def __init__(self,name):
self._th = Thread(target = self.Func);
self._name = name;
self._th.run();
def Func(self):
print "aqui otro thread (%s)" % self._name
class C:
def __init__(self,name):
self._th = thread.start_new_thread(self.Func,());
self._name = name;
def Func(self):
print "aqui otro thread (%s)" % self._name;
def fn(data):
print data;
c = thread.start_new_thread(fn,("holax",));
C("2");
B("3");
La clase B funciona correctamente (de hecho así lanzo ahora el thread), sin embargo la clase C no funciona y es precisamente porque usa la función start_new_thread del módulo thread. Un poco más abajo uso esta función para lanzar un thread, pero ahora es una función que no pertenece a una clase, y en este caso funciona correctamente. En la documentación de python2.4 no dice nada acerca de cómo usar la función start_new_thread y mucho menos su uso en clases, tendré que googlear un poco para ver qué pasa, aunque mi instinto me dice que puede ser por el parámetro self que debería pasarle y no le paso, sin embargo en este caso lanzaría una excepción.
PD: lamento el formateo pero blogger parece que no se lleva nada bien con el HTML embebido
PD2: viendolo desde blogger quedaba mal formateado, pero desde Planet AUG-CYL(hola a todos por cierto:) es prácticamente ilegible, así que he optado por eliminar el code y poner un italic y un pre (mis conocimientos de HTML no dan para más).
1 comentario:
por lo visto en el planet ya no se ve el body de tus post..., al menos yo no lo veo en mi firefox..
Interesante esto del python, espero que me piques para aprender a usar algo en serio y no trapichear con mil cosas (php, bash, C, etc...)
Saludos
Publicar un comentario