相当于Python中的Java volatile
Python是否具有Java volatile概念的等价物?
在Java中有一个关键字volatile.据我所知,当我们在声明变量时使用volatile时,对该变量值的任何更改都将对同时运行的所有线程可见. 我想知道Python中是否有类似的东西,这样当函数中的变量值发生变化时,它的值对于同时运行的所有线程都是可见的. 解决方法
挥发性比这更微妙. volatile确保Java在主内存中存储和更新变量值.如果没有volatile,JVM可以自由地将值存储在CPU缓存中,这会对在不同CPU核心上运行的不同线程不可见的值进行更新的副作用(在同一核心上并发运行的线程会看到价值). Python不会这样做. Python将所有对象存储在主内存中的堆上.此外,由于Python解释器循环使用锁定(GIL)的方式,一次只有一个线程将主动运行Python代码.不同的线程永远不可能在不同的CPU上运行Python解释器循环. 所以你不需要在Python中使用volatile,没有这样的概念,你不需要担心它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |