2017-02-14 5 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?') 

r является экземпляром R. Тестовый файл не записывается. Зачем?

+0

Почему г экземпляр 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