等效于Java的Python中挥发性

巴勃罗:

Python中是否有在Java相当于volatile什么概念?

在Java中有一个关键词volatile据我知道,当我们使用volatile,同时声明一个变量,任何改变该变量的值将是在同一时间运行的所有线程可见。

我想知道是否有在Python类似的东西,所以,当一个变量的值的功能被改变,其价值将是在同一时间运行的所有线程可见。

马亭皮特斯:

据我知道,当我们用易挥发,同时声明一个变量,任何改变该变量的值将是在同一时间运行的所有线程可见。

volatile是比这要更细致。volatile确保Java的存储和更新的变量值在主内存中如果没有volatile,则JVM是免费存储在CPU高速缓存,而不是,它具有的价值副作用更新的价值是无形的,以在不同的CPU内核上运行不同的线程(正在相同的核心同时运行的线程看到值)。

Python没有永远做到这一点。Python中存储的所有对象上堆,在主内存中。此外,由于Python解释器循环使用如何锁定(GIL的),只有一次一个线程将积极运行Python代码。从未有一个机会,不同的线程运行在不同的CPU上一个Python解释器循环。

所以,你不需要使用volatilePython中,有没有这样的概念,你不需要对此担心。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章