Многопроцессорность Python не работает или выдает исключение

У меня есть класс, и в конструкторе я создаю объекты класса Process, как показано ниже.

self.child = multiprocessing.Process(target = self.load_paths,args = (self.paths,self.queue,))
self.child.daemon = True

В отдельной функции я пытаюсь запустить процесс, например

def start_child(self):
    self.child.start()
    print 'child started'

теперь всякий раз, когда я вызываю функцию start_child() 3-й раз или n+2-й раз, дочерний элемент запускается, но сообщение никогда не печатается, и вызов не возвращается.

Изменить: процесс, который запускает новых детей, также является дочерним процессом, запущенным каким-то другим процессом.

Это не возвращает никаких исключений и работает точно так, как ожидалось в Windows (python 2.7.8). Проблема возникает в Ubuntu с python 2.7.6

Как я могу смягчить это, если диспетчер задач не показывает никаких аномалий в окнах для этого кода?


person Muhammad Umar Farooq    schedule 01.04.2015    source источник
comment
о каком сообщении вы говорите, что не печатается? print 'child started'?   -  person ozgur    schedule 01.04.2015
comment
да печать "ребенок начал"   -  person Muhammad Umar Farooq    schedule 01.04.2015
comment
Процесс, который запускает новых детей, также является дочерним процессом, запущенным каким-то другим процессом, вы имеете в виду «start_child», также запущенным каким-то другим процессом?   -  person pnv    schedule 01.04.2015
comment
да, это то, что я имел в виду.   -  person Muhammad Umar Farooq    schedule 01.04.2015


Ответы (1)


Я решил это, унаследовав целевой класс от multiprocessing.Process и переопределив функцию запуска.

person Muhammad Umar Farooq    schedule 03.04.2015