Python中文
首页
教程
问答
标签
搜索
登录
注册
Python线程和GIL
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在读关于GIL的文章,它从来没有真正指明这是否包括主线程(我想是这样的)。我问这个问题是因为我有一个程序,它的线程设置可以修改字典。主线程根据玩家的输入进行添加/删除,而线程则循环数据更新和更改数据。在</p> <p>但是在某些情况下,线程可能会迭代字典键,在那里可以删除它们。如果它们是顺序变化的,那为什么叫gila?如果一次只能运行一个,那么从技术上讲,这不应该发生。在</p> <p>有人能解释一下这件事吗?谢谢您。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>GIL锁定在Python字节码级别,适用于所有线程,甚至主线程。如果有一个线程修改字典,而另一个线程迭代键,它们将相互干扰。在</p> <p>“一次只运行一次”是正确的,但您必须了解粒度单位。在CPython的GIL中,粒度是字节码指令,因此可以在任何字节码的线程之间切换执行。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在python3中使用Scipy pearsonr函数
7 回答
在Python3中使用scipy对多个lorentzian进行数据拟合
10 回答
在Python3中使用Script=argv
7 回答
在python3中使用selenium webdriver进行未解析的回溯
5 回答
在python3中使用selenium和phantomjs的网页截图之前如何等待?
1 回答
在Python3中使用Selenium和Requests模块从网页获取文件
6 回答
在python3中使用SIGINT终止函数
10 回答
在Python3中使用SIGTERM时,允许进程完成而不是中断
9 回答
在python3中使用smtplib发送XML内容
10 回答
在python3中使用socket库(RFCOMM模式)重新连接蓝牙设备?
3 回答
在python3中使用sounddevice和numpy编写wav文件
7 回答
在python3中使用Sqlalchemy插入MySQL查找类型错误的原因
6 回答
在python3中使用sqlite、pandas和sqlalchemy很难让rollback工作
4 回答
在python3中使用SQLite的FTS3/4
5 回答
在Python3中使用struct.calcsize()和len()有区别吗?
7 回答
在python3中使用substring函数时发生TypeError
8 回答
在Python3中使用Tkinter entry小部件写入串行设备
5 回答
在python3中使用tkinter时,如何在每次按下函数时获得运行该函数的按钮?
5 回答
在python3中使用tkinter的子帧
10 回答
在Python3中使用tryexcept块时,如何避免使用未初始化的变量?
9 回答