我很好奇。我已经用 Python 编程多年了。当我运行一个阻塞 I/O 的命令(无论是硬盘读取还是网络请求),或者在等待释放锁时阻塞,这是如何实现的?线程如何知道何时重新获取 GIL 并重新开始运行?
我想知道这是否是通过不断检查(“输出现在在这里吗?现在在这里吗?现在呢?”)来实现的,我认为这很浪费,或者以更优雅的方式。
我很好奇。我已经用 Python 编程多年了。当我运行一个阻塞 I/O 的命令(无论是硬盘读取还是网络请求),或者在等待释放锁时阻塞,这是如何实现的?线程如何知道何时重新获取 GIL 并重新开始运行?
我想知道这是否是通过不断检查(“输出现在在这里吗?现在在这里吗?现在呢?”)来实现的,我认为这很浪费,或者以更优雅的方式。