假设我正在使用 signal
处理程序来处理间隔计时器。
def _aHandler(signum, _):
global SomeGlobalVariable
SomeGlobalVariable=True
我可以设置 SomeGlobalVariable
而不必担心,在不太可能的情况下,在设置 SomeGlobalVariable
(即 Python VM 正在执行字节码来设置变量)时,分配信号处理程序内会破坏什么? (即元稳定状态)
更新:我对在处理程序之外进行“复合分配”的情况特别感兴趣。
(也许我想的太“低级”了,这一切都在 Python 中处理了......来自嵌入式系统背景,我不时有这种冲动)
最佳答案
对简单变量的简单赋值是“原子的”AKA threadsafe(复合赋值,如 +=
或对项目或对象属性的赋值不需要,但您的示例是对简单变量的简单赋值,尽管是全局的、可变的,因此是安全的)。
关于python - Python变量赋值是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291069/