2011-01-03 5 views
-1
obj = functioning() 

from threading import Thread 
Thread(target=obj.runCron(cronDetails)).start() 
print "new thread started..." 

Я запускаю это, это должно работать как новый поток для функции runCron и должен печатать новый поток. но это не печатает новый поток и не создает новую нить.python thread error

+1

что он делает? Что происходит вместо этого? Вы получили сообщение об ошибке? Затем вставьте полную метку ошибки. – nosklo

+0

решила спасибо за ответ – samy

+0

Если вы получаете какое-либо исключение, то, пожалуйста, размещайте сообщения об ошибках - или, по крайней мере, те, которые, как представляется, относятся к вам - тоже. – miku

ответ

1

Похоже, вы хотите позвонить obj.runCron(cronDetails) внутри темы. Но то, что этот код делает, это сначала позвонить obj.runCron(cronDetails), а затем передать результат этого классу Thread.

Если это так, то ниже код должен это исправить:

obj = functioning() 

from threading import Thread 
Thread(target=obj.runCron, args=(cronDetails,)).start() 
print "new thread started..." 

Обратите внимание, что я не называю obj.runCron себя больше, но передавая этот метод с аргументами отдельно threading.Thread так можно назвать внутри потока с правильными аргументами.

Если это не делает то, что вы хотите, предоставьте дополнительную информацию, как я спросил в комментарии.

+0

большое спасибо – samy

2

У вас возникли вопросы о некоторых деталях, например. какое сообщение об ошибке вы получаете и т. д. - ниже приведен пример рабочего примера, подражающийся после вашего кода.

#!/usr/bin/env python 

import time 

class Obj(object): 
    def runCron(self, cronDetails): 
     time.sleep(1) 
     print cronDetails 

obj = Obj() 
cronDetails = "I'm here." 

from threading import Thread 

# Note, that the `target` is a function object 
# (or a callable in general), we don't actually call it yet! 
t = Thread(target=obj.runCron, args=(cronDetails,)) 
t.start() 
print "New thread started (should be here in a second) ..." 

Он печатает:

New thread started (should be here in a second) ... 
I'm here. 
+0

большое спасибо – samy