我不明白为什么下面的代码挂起。当我从控制台运行它时,一切都很好,但是当我尝试通过浏览器运行它时,页面会挂起。 我正在使用Python 2.7.2。线程中的子进程。线程挂起
class MyThread(threading.Thread):
def __init__(self):
self.stdout = None
self.stderr = None
threading.Thread.__init__(self, name="snapshot",)
def run(self):
p = subprocess.Popen(["pwd"], shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None)
p.communicate()
myThread = MyThread()
myThread.start()
myThread.join()
更新 我与Apache上运行的Python的CGI。运行的系统是Gentoo 2.1。
我认为问题出在Apache上。不知何故,它阻止了新线程,但我不确定。
有一个语法错误 - 在类定义之后没有“:”。 – 2012-08-05 14:25:46
你是什么意思“通过浏览器运行”?如果你使用Python web框架,你应该指定哪一个,并且你是直接运行它还是运行在apache/nginx/etc之后。 – stderr 2012-08-05 14:52:14