线程在 I/O 等待时如何释放 GIL 并实现切换
threading.Lock() 获取 GIL,
开始执行自己的 Python 代码(计算任务)
socket.read、file.read)
底层调用 C 库,Python 解释器知道"这个操作会阻塞",于是主动释放 GIL
socket、file、requests 等)
底层调用 C 库,Python 解释器能识别"这是一个需要等待的操作"