gpt4 book ai didi

python - Python 解包线程安全吗?

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:30 26 4
gpt4 key购买 nike

x,y = self.mytuple 这样的操作在 Python 中是原子的吗?

或者 self.mytuple 是否可以在赋值期间被另一个线程修改,导致 x 引用 self.mytuple 的第一个版本,而 y 引用第二个版本?

我正在使用 Python 3。

最佳答案

它是线程安全的只有当项目访问不是由 Python 代码处理时

解包由一个字节码处理:

>>> def f():
... a, b = self.mytuple
...
>>> import dis
>>> dis.dis(f)
2 0 LOAD_GLOBAL 0 (self)
3 LOAD_ATTR 1 (mytuple)
6 UNPACK_SEQUENCE 2
9 STORE_FAST 0 (a)
12 STORE_FAST 1 (b)
15 LOAD_CONST 0 (None)
18 RETURN_VALUE

提供的self.mytuple是一个真正标准的Python tuple,即线程安全的。

一旦从 mytu​​ple 访问项目触发自定义 __getitem__,所有的赌注都关闭了。

关于python - Python 解包线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17880986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com