gpt4 book ai didi

Python 线程和 GIL

转载 作者:太空狗 更新时间:2023-10-29 22:04:26 25 4
gpt4 key购买 nike

我正在阅读有关 GIL 的内容,但它从未真正指定它是否包含主线程(我假设是这样)。我问的原因是因为我有一个带有修改字典的线程设置的程序。主线程根据玩家输入添加/删除,而线程循环数据更新和更改数据。

然而,在某些情况下,线程可能会遍历可以删除它们的字典键。如果有所谓的 GIL 并且它们按顺序运行,为什么我会收到 dict changed 错误?如果假设一次只运行一个,那么从技术上讲这不应该发生。

任何人都可以阐明这样的事情吗?谢谢。

最佳答案

它们同时运行,只是不同时执行。迭代可能是交错的。引用 Python:

The mechanism used by the CPython interpreter to assure that only one thread executes Python bytecode at a time.

因此两个 for 循环可能会同时运行,不会有(例如)两个 del dict[index] 同时运行。

关于Python 线程和 GIL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4748787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com