有GIL时,你可以在Python中竞争条件吗?
发布时间:2020-11-17 23:29:34 所属栏目:Python 来源:互联网
导读:我的理解是,由于c Python中的Global Interpreter Lock,任何时候都只能执行一个线程.这是否会自动保护免受竞争条件的影响,例如丢失的更新问题? 为了清楚起见,我从理论的角度提问.没有同步,我永远不会编写线程代码. 由于GIL,每个进程只有一个线程处于活动状态
我的理解是,由于c Python中的Global Interpreter Lock,任何时候都只能执行一个线程.这是否会自动保护免受竞争条件的影响,例如丢失的更新问题? 为了清楚起见,我从理论的角度提问.没有同步,我永远不会编写线程代码. 解决方法由于GIL,每个进程只有一个线程处于活动状态以执行Python字节码;字节码评估循环受其保护.每 即使是单字节代码指令也可以触发其他Python代码;例如,line对象[index]可以在自定义类上触发__getitem__调用,在Python中实现.因此,单个BINARY_SUBSCR操作码不一定是线程安全的,具体取决于对象类型. (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – plotly.offline.iplot给出一个大的空白字段作为输
- python – ctypes错误找不到AttributeError符号,OS X 10.7.
- 在Python中映射数组的好方法是什么?
- python random.shuffle的随机性
- python – 我的Model主键如何以特定的数字开头?
- python – 禁止“程序无法启动因为X.dll丢失”错误弹出窗口
- python – 如何在DataFrame中增加groupby中的行数
- 一个使用SimpleHTTPServer和SocketServer的简单的python服务
- python – 根据网络重复边缘更新权重信息
- Python:如何从1D阵列或列表中获取局部最大值