python - Python 整数是线程安全的吗?

标签 python multithreading thread-safety python-3.x

Python 整数是线程安全的吗?我无法从 Google 找到明确的答案。

最佳答案

是的,它们是不可变的,就像字符串一样。代码 x += 1 实际上创建了一个全新的整数对象并将其分配给 x

如果不清楚的话,不可变的事物自动是线程安全的,因为两个线程无法同时尝试修改同一事物。您看,它们无法修改,因为它们是不可变的。

来自解释器的示例:

>>> x = 2**123
>>> x
10633823966279326983230456482242756608
>>> id(x)
139652080199552
>>> a = id(x)
>>> x+=1
>>> id(x)
139652085519488
>>> id(x) == a
False

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

相关文章:

java - Android - 如何在一个后台线程中对多个作业进行排队?

c++ - 动态可调阵列和 OpenMP

c++ - 保留 vector 是线程安全的吗?

python - 在 Django 模型中使用自己的字段定义其他字段

java - 该变量属于哪个线程?

python - 扩展字典数据框列表

java - CAS(比较和交换)工作正常吗?

objective-c - 后台线程中可取消的加载

python - 如何沿着geojson折线找到POI,最好使用python?

python - Scrapy - 上传到 S3 时如何为一个项目中的多个文件 URL 设置自定义路径?