乔什

撰写评论

在锁定部分,您做了如下陈述:“只要没有线程在休眠、执行 I/O 或其他 GIL 释放操作时持有锁,就应该使用最粗粒度、最简单的锁。无论如何,其他线程都无法并行运行。”

当您持有锁时,是什么阻止了 GIL 的抢占式释放?

感谢您的快速回复!

如果我理解正确的话,我引用的声明的意图是避免在外部操作周围使用锁,因为如果多个线程都依赖于该锁,那么您可能会阻止多个线程。

对于抢占式示例,线程 A 没有被任何外部因素阻止,因此处理过程只是来回切换,类似于协作式多任务处理。

我理解对了吗?

© . All rights reserved.