![](/img/trans.png)
[英]Does GIL affect parallel processing of a python script in separate terminal windows?
[英]How does the GIL in python affect the downloading of webpages in parallel?
我对这个问题背景的理解:
因此我的问题是:
GIL 将如何影响所请求网页的下载? 制作并行网页请求会很好地利用 python 线程吗? 因为下载网页是一个 I/O 操作,这是否意味着线程有用?
我会想象一个线程会发出请求 > 另一个线程会在某个时候获得控制权并发出自己的请求 > 另一个线程将获得控制权等等。然后数据将开始流入,但是如何处理? 下载会中断吗? 我想我缺乏对操作系统、python 解释器和操作系统的响应处理的低级理解。
对于 I/O 绑定任务(如下载网页),GIL 不是问题。 Python 在 I/O 发生时释放 GIL,这意味着所有线程都可以并行执行请求。 每当您处理下载的页面时,这就是 GIL 会伤害您的地方。
关于一般经验法则,您是对的:您可以进行 I/O 并且 GIL 不会伤害您,但是对于受处理器限制的任务,您应该尝试改用多处理。
有关 GIL 的更多信息,您可以查看David Beazley 的演讲
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.