我在阅读关于GIL的内容时发现它从未明确指出是否包括主线程(我认为是的)。我提问的原因是因为我有一个设置了线程以修改字典的程序。主线程根据玩家输入添加/删除,而一个线程循环数据更新和更改数据。
然而,在某些情况下,一个线程可能会迭代字典键,其中一个线程可能会删除它们。如果有所谓的GIL并且它们按顺序运行,为什么我会收到“dict changed”错误?如果只有一个线程可以同时运行,那么这种情况理论上不应该发生。
能否有人解释一下这样的情况?谢谢你。
然而,在某些情况下,一个线程可能会迭代字典键,其中一个线程可能会删除它们。如果有所谓的GIL并且它们按顺序运行,为什么我会收到“dict changed”错误?如果只有一个线程可以同时运行,那么这种情况理论上不应该发生。
能否有人解释一下这样的情况?谢谢你。