关于Python语句和Global Interpreter Lock的原子性

时间:2015-10-19 10:32:20

标签: python python-2.7 python-3.x

我读到了索引列表的地方,例如l [3]是原子操作。由于全局解释器锁定而实现了原子性。

1 个答案:

答案 0 :(得分:1)

是的,索引应该是原子的,只要你在原生列表上做,而不是有人可以重定向的__getitem__;但是,这是一个实现细节,你不能依赖它。

不,这不仅仅是因为GIL,而是因为只允许在单个解释器指令之间切换线程,并且索引是这样的单个指令,但仅限于CPython。

外卖:不要依赖高级脚本语言(如python )中的原子性;如果你需要障碍,那么使用信号量或明确的原子数据类型。