python threading 文档指出“......线程仍然是一个合适的模型 如果你想同时运行多个 I/O-bound 任务", 显然是因为 I/O-bound 进程可以避免阻止 来自 CPU 密集型任务中并发执行的线程。
但我不明白的是,I/O 任务仍然使用 CPU。所以 怎么可能不遇到同样的问题?是不是因为 I/O 绑定(bind)任务不需要内存管理?
最佳答案
Python 的所有阻塞 I/O 原语都会在等待 I/O block 解析时释放 GIL —— 就是这么简单!他们当然需要在继续执行进一步的 Python 代码之前再次获取 GIL,但是对于他们只是等待一些 I/O 系统调用的长期机器周期间隔,他们不需要'不需要 GIL,所以他们不会坚持下去!
关于python - 为什么 GIL 不会阻止 Python I/O 绑定(bind)任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29270818/