2017-02-14 87 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