我有一个简单的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
答案 0 :(得分:3)
分叉是由popen
调用完成的,而不是线程创建,因此似乎完全可以接受。
如果没有更多信息,无法调试join
问题。当被问到is_alive()
时,线程会返回什么?
编辑:混合线程和分支可能不好。请参阅下面评论中的this article和博客链接。