Python中是否有在Java相当于volatile
什么概念?
在Java中有一个关键词volatile
。据我知道,当我们使用volatile
,同时声明一个变量,任何改变该变量的值将是在同一时间运行的所有线程可见。
我想知道是否有在Python类似的东西,所以,当一个变量的值的功能被改变,其价值将是在同一时间运行的所有线程可见。
据我知道,当我们用易挥发,同时声明一个变量,任何改变该变量的值将是在同一时间运行的所有线程可见。
volatile
是比这要更细致。volatile
确保Java的存储和更新的变量值在主内存中。如果没有volatile
,则JVM是免费存储在CPU高速缓存,而不是,它具有的价值副作用更新的价值是无形的,以在不同的CPU内核上运行不同的线程(正在相同的核心同时运行的线程会看到值)。
Python没有永远做到这一点。Python中存储的所有对象上堆,在主内存中。此外,由于Python解释器循环使用如何锁定(GIL的),只有一次一个线程将积极运行Python代码。从未有一个机会,不同的线程运行在不同的CPU上一个Python解释器循环。
所以,你不需要使用volatile
Python中,有没有这样的概念,你不需要对此担心。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句