2017-02-14 3 views
0

다음 코드를 감안할 때 :오브젝트를 이용한 멀티 프로세싱?

if __name__ == '__main__': 
    print "name = main" 
    multiprocessing.Process(target=r.fetchFiles, args=(r.results.pop(),)) 

class R: 
    # ... 
    def fetchFiles(self, blabla): 
     with open('/tmp/doyou.txt', 'w+') as f: 
      f.write('do you do something?') 

rR의 인스턴스입니다. 테스트 파일이 작성되지 않습니다. 왜?

+0

왜 R은 R의 인스턴스? 귀하의 코드는 그것을 보여주지 않습니다. 다중 처리가 작동하려면 모든 코드를 함수에 넣으십시오. – MKesper

+0

코드 18000 줄을 붙여 넣지 않았던 점에 감사드립니다. 감사. –

+0

그럼에도 불구하고 작동해야하는 최소한의 예를 제시하십시오. – MKesper

답변

1

과정은 started 할 필요가 :

process = multiprocessing.Process(target=r.fetchFiles, args=(r.results.pop(),)) 
process.start() 
process.join() 

간단한 작업 예 :

from multiprocessing import Process 

class R: 
    def print_value(self, value): 
     print(value) 

if __name__ == '__main__': 
    process = Process(target=R().print_value, args=('a',)) 
    process.start() 
    process.join() 
+0

:) right @Elisha – dsgdfg