加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

相当于Python中的Java volatile

发布时间:2020-12-20 11:08:45 所属栏目:Python 来源:网络整理
导读:Python是否具有Java volatile概念的等价物? 在Java中有一个关键字volatile.据我所知,当我们在声明变量时使用volatile时,对该变量值的任何更改都将对同时运行的所有线程可见. 我想知道Python中是否有类似的东西,这样当函数中的变量值发生变化时,它的值对于同
Python是否具有Java volatile概念的等价物?

在Java中有一个关键字volatile.据我所知,当我们在声明变量时使用volatile时,对该变量值的任何更改都将对同时运行的所有线程可见.

我想知道Python中是否有类似的东西,这样当函数中的变量值发生变化时,它的值对于同时运行的所有线程都是可见的.

解决方法

As far as I know,when we use volatile while declaring a variable,any change to the value of that variable will be visible to all threads running at the same time.

挥发性比这更微妙. volatile确保Java在主内存中存储和更新变量值.如果没有volatile,JVM可以自由地将值存储在CPU缓存中,这会对在不同CPU核心上运行的不同线程不可见的值进行更新的副作用(在同一核心上并发运行的线程会看到价值).

Python不会这样做. Python将所有对象存储在主内存中的堆上.此外,由于Python解释器循环使用锁定(GIL)的方式,一次只有一个线程将主动运行Python代码.不同的线程永远不可能在不同的CPU上运行Python解释器循环.

所以你不需要在Python中使用volatile,没有这样的概念,你不需要担心它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读