我在文档的“警告”部分中看到了这个有趣的声明 thread
模块今天:
并非所有可能阻止等待I / O的内置函数都允许其他功能 线程运行。 (最受欢迎的(
time.sleep()
,file.read()
,select.select()
)按预期工作。)
几乎所有其他地方我都见过Python线程,我们总是假设所有执行I / O的内置函数都会释放GIL,这意味着其他线程可以在函数阻塞时运行。据我所知,I / O操作阻止其他线程的唯一风险是,如果它是由一个忽略释放GIL的错误的C扩展。
所以,这是来自的声明 thread
docs其实是真的吗?是否存在不释放GIL的内置阻塞I / O操作?到目前为止,我还没有找到任何具体的例子。