Почему мой скрипт на python разветвляется, когда создает потоки? - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть простой скрипт на python, который вызывает 6 потоков, и по какой-то причине он создает эти потоки и создает свою копию.Когда я пытаюсь объединить все темы, он застревает навсегда.Как мне это исправить?

def backup_function():
    for todo_list in master_list:
        worker_thread = maint_tasker(todo_list)
        threadlist.append(worker_thread)        
        worker_thread.start()

for worker_done in threadlist:
    worker_done.join()

class maint_tasker (threading.Thread):
    def __init__(self,list1):
        threading.Thread.__init__(self)
        self.list1 = list1
    def run (self):
        self.result = Popen("do stuff here", executable="/bin/bash", stdout=PIPE, stderr=STDOUT, shell=True).stdout.read()
    def output(self):
        return self.result    

1 Ответ

3 голосов
/ 12 декабря 2011

Разветвление выполняется вызовом popen, а не созданием потока, поэтому кажется вполне приемлемым.

Не могу отладить вашу проблему join без дополнительной информации. Что возвращает поток, когда его спросят is_alive()?

Редактировать : Смешивание нитей и вилок может быть плохим. См. эту статью и ссылку на блог в моем комментарии ниже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...