【发布时间】:2011-12-09 03:08:19
【问题描述】:
我有一个线程调用Popen 从命令行实用程序获取字符串。在一些非常非常滞后的网络数据到达之前,这个命令行函数不会返回。有时可能需要几分钟,有时不到一秒钟。
如果用户愿意,他们可以取消等待这个数据。在这种情况下,停止线程的正确方法是什么?
class CommThread( threading.Thread ):
def __init__(self):
self.stdout = None
self.stderr = None
self.command = None
threading.Thread.__init__(self)
def run(self):
if self.command is not None:
p = Popen( self.command.split(), shell=False, stdout=PIPE, stderr=PIPE)
self.stdout, self.stderr = p.communicate()
【问题讨论】:
标签: python multithreading popen