run
dan*_*ano 6
两者time.sleep(如本问题所述)和win32库(根据此邮件列表帖子)在调用它们时都会释放 GIL,因此它们不会阻止其他线程在阻塞时取得进展。
回答“高级”问题 - “可以run_in_executor(直接或间接)阻止事件循环吗?” - 如果您使用 a ThreadPoolExecutor,那么答案只会是“是” ,并且您在其中执行的代码run_in_executor做了没有释放 GIL 的阻塞工作。虽然这不会完全阻塞事件循环,但这意味着您的事件循环线程和执行器线程不能并行运行,因为两者都需要获取 GIL 才能取得进展。
run