CPython的原子操作
GIL 保证的 Thread-safe 是在 Bytecode 层而不是 Python Code。所以能确保的是每行 Bytecode 都会被运行完成,而多行 Bytecode 是则有被中断切换执行的可能性。
原子操作
- 读取/覆盖一个单变量
- 读取/覆盖一个全局变量
- 从list拿到一个元素
- 更新list的一个元素(例如: list.append())
- 从dictionary中获取一个元素
- 更新dictionary的一个元素
参考文章
- 原文作者:Daryl
- 原文链接:https://siskinc.github.io/post/cpython%E7%9A%84%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。