问题描述
我在某处读到索引列表,例如l [3]是原子操作。 是由于全局解释器锁定而实现的原子性。
1楼
是的,只要您在本机列表上进行索引,索引应该是原子的,而不是有人可以重定向__getitem__
索引;
但是,这是一个实现细节 ,您不能依赖它。
不,这不仅是因为GIL,还因为仅允许在单个解释器指令之间进行线程之间的切换,而索引就是这样的单个指令,而仅在CPython中。
要点: 不要依赖高级脚本语言(例如python)中的原子性 ; 如果需要障碍,请使用信号量或显式的原子数据类型。