当前位置: 首页 > news >正文

网站如何做备份如何做网站导航栏

网站如何做备份,如何做网站导航栏,萍乡建站公司,网站安全检测volatile字段 有多处理器的计算机能够暂时在寄存器或本地内存缓存中保存内存值,其结果是,运行在不同处理器上的线程可能看到同一个内存位置上有不同的值。编译器可以改变指令执行的顺序以使吞吐量更大化,编译器不会选择可能改变代码语义的顺…

volatile字段

  • 有多处理器的计算机能够暂时在寄存器或本地内存缓存中保存内存值,其结果是,运行在不同处理器上的线程可能看到同一个内存位置上有不同的值。
  • 编译器可以改变指令执行的顺序以使吞吐量更大化,编译器不会选择可能改变代码语义的顺序,但编译器有一个假定,认为内存值只在代码中有显式的修改指令时才会改变,然而,内存值有可能被另一个线程改变。

注释:Brian Goetz创造了以下"同步格言",如果写一个变量,这个变量接下来可能会被另一个线程读取,或者,如果读一个变量,而这个变量可能已经被另一个线程写入值,那么必须使用同步。

volatile关键字为实例字段的同步访问提供了一种免锁机制。

如果声明一个字段为volatile,那么编译器和虚拟机就知道该字段可能被另一个线程并发更新。

例如,假设一个对象有一个boolean标记done,它的值由一个线程设置,而由另一个线程查询,你可以使用锁:

private boolean done;

public synchronized boolean isDone(){ return done; }

public synchronized void setDone(){ done = true; }

或许使用内部对象锁不是个好主意,如果另一个线程对该对象加锁,isDone和setDone方法可能会阻塞。如果这是个问题,可以只为这个变量使用一个单独的锁,但这很麻烦。

这种情况下,将字段声明为volatile就很合适:

private volatile boolean done;

public boolean isDone(){ return done; }

public void setDone(){ done = true; }

编译器会加入适当代码,确保如果一个线程对done变量做了修改,这个修改对读取这个变量的所有其他线程都可见。

警告:volatile不能提供原子性,例如,方法public void flipDone(){ done = !done }不能确保翻转字段中的值,不能保证读取,翻转和写入不被中断。

http://www.yayakq.cn/news/260627/

相关文章:

  • 济南成之运维网络科技flash网站做seo优化好不好
  • 现在手机网站用什么做教育微网站建设
  • 哈尔滨自助建站平台广告公司推广平台
  • 酷炫个人特别网站媒体宣传
  • 妇科医院网站设计武威网页设计培训学校
  • 如何建立一个网站查询数据加强部门网站建设
  • asp.net网站备份住房
  • 手机网站域做什么广告网站开发费用报价单
  • 扬州做机床公司网站优质的做pc端网站
  • 高碑店住房和城乡建设局网站哪些网站是做快消品的
  • 什么网站可以做装修效果图女孩子奖励自己的资料
  • 做企业云网站的企业邮箱wordpress 社交
  • 网站建设程序开发无锡网站建设公司怎么样
  • 网站建设侵权行为有哪些建设局特种作业网站
  • 重生做网站小说宁波网站优化软件
  • 网站建设推广关键词临沂建设局网站
  • 黑色背景的网站开发工具科技有限公司的名称应该怎么取名
  • 泰安如何选择网站建设硬件开发用什么语言
  • 织梦手机网站怎么修改dede仿wordpress
  • 仿励志一生lz13网站整站源码长春南京小学网站建设
  • 南宁建设银行官网招聘网站营销型网站功能
  • 东莞黄江建设银行网站保险代理平台
  • 网站建设青岛公司做网站外贸怎么找客户
  • 毕设做的网站可以用模板改吗单页面网站如何优化
  • 成都网站制作龙兵科技东莞人才市场档案服务中心
  • 网站 成品下载做电商需要什么条件
  • 网站建设需求分析表怎么写网站建设初期目标
  • 那个网站的公众后推广做的好号网站开发
  • WordPress建站收费上海做网站的公司哪个好
  • 企业建站多少钱一个月wordpress增加英文