【发布时间】:2012-08-05 14:45:41
【问题描述】:
我正在使用urllib2 的build_opener() 创建一个OpenerDirector。我正在使用OpenerDirector 来获取一个缓慢的页面,因此它有很大的超时。
到目前为止,一切都很好。
但是,在另一个线程中,我被告知要中止下载 - 假设用户已选择退出 GUI 中的程序。
有没有办法指示 urllib2 下载应该退出?
【问题讨论】:
-
更多关于原因的信息会很有用——正如你所说,杀死一个线程真的是不可取的,其他方法取决于你是否可以守护进程,然后有一个共享队列等。 .
-
@JBernardo:嗯,那已经过去了,这个计划破灭了。 TerminateThread(windows)会导致死锁吗?啊。我说它很丑,但我没有意识到它会很危险。
-
@Jon:我不确定您可能需要什么进一步的信息。一个线程正在获取返回缓慢的网页。另一个线程的任务是关闭它,因为用户取消了。守护进程 threads 只会在整个应用程序关闭时工作,但这可能很有用。
-
@Oddthinking 这不是 Python 问题。您尝试的每种语言都会警告杀死线程(因为内存泄漏)或不允许您这样做。如果性能不是问题,您可以使用
multiprocess包