【发布时间】:2012-08-02 18:25:03
【问题描述】:
我不明白为什么下面的代码会挂起。当我从控制台运行它时,一切都很好,但是当我尝试通过浏览器运行它时,页面挂起。 我正在使用 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 作为 CGI 运行 Python。运行的系统是 Gentoo 2.1。
我认为问题出在 Apache 上。不知何故,它阻塞了新线程,但我不确定。
【问题讨论】:
-
语法错误——类定义后没有“:”。
-
“通过浏览器运行”是什么意思?如果您使用的是 Python Web 框架,您应该指定是哪一个,以及您是直接运行它还是在 apache/nginx/etc 后面运行它。
标签: python multithreading apache cgi subprocess