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

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

runnning this, runCron 함수의 새 스레드로 실행해야하며 새 스레드가 시작된 인쇄해야합니다. 하지만이 새로운 스레드가 시작되지 않은 새 스레드를 생성하지 않습니다.파이썬 스레드 오류

+1

? 대신 무엇이 발생합니까? 오류가 있습니까? 그런 다음 전체 오류 추적을 붙여 넣으십시오. – nosklo

+0

답장을 보내 주신 분께 – samy

+0

어떤 종류의 예외가 발생하는 경우 오류 메시지 - 또는 적어도 귀하와 관련된 것으로 보이는 메시지 -를 게시하십시오. – miku

답변

1

스레드 안에 obj.runCron(cronDetails)을 호출하려는 것 같습니다. 그러나이 코드가 수행하는 작업은 obj.runCron(cronDetails)을 먼저 호출 한 다음 의 결과를 Thread 클래스로 전달하는 것입니다. 그런 경우

, 아래의 코드를 수정해야 : 나는 그것이 호출 할 수 있으므로 더 이상 자신을 obj.runCron를 호출하지만, threading.Thread에 별도로 인수와 함께 그 방법을 전달하고 있지 않다

obj = functioning() 

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

주 올바른 인수를 가진 스레드.

원하는대로 할 수 없다면 의견에 질문 할 때 자세한 정보를 제공해주십시오.

+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