当前位置: 首页 > 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.15wanjia.com/news/10913.html

相关文章:

  • 太原招聘网站开发品牌推广策略怎么写
  • 建设学校网站的操作流程具体软文标题大全
  • 做网站赚多少钱百度推广手机登录
  • 公司网站建设推荐网络策划方案
  • 有了网站 域名然后么做免费手机网页制作
  • 聊城做网站的公司渠道百度站长工具抓取诊断
  • 新开神途手游发布网站网站seo属于什么专业
  • 做铜字接单网站关键词排名零芯互联关键词
  • 免费服务器试用网站seo推广seo教程
  • 网站开发中为什么有两个控制层培训机构如何招生营销
  • 中国建筑装饰网唐迪夫百度seo官方网站
  • 个人主页网站html群站优化之链轮模式
  • 东莞兼职招聘网最新招聘手机网站怎么优化
  • 上海企业网站制作百度推广管理
  • 网站建设前期规划方案seo公司推广宣传
  • 网站建设方案及预算搜索引擎优化的主要内容
  • 住房城乡建设部官网哈尔滨网站优化
  • 沧州网络营销推广方案优化公司哪家好
  • 网站开发 盈利seo推广宣传
  • 成都诗和远方网站建设企业网站设计
  • net域名大网站关键词优化推广公司哪家好
  • 武汉网页设计班培训新站seo外包
  • 台州网站公司建站网络推广哪个平台效果最好
  • 陕西西安网站建设公司百度如何购买关键词
  • 如何查询网站已经提交备案seo营销策划
  • dede模板打网站显示栏logo著名营销策划公司
  • 安阳网站制作哪家好北京seo多少钱
  • 用源码怎么做网站什么是软文
  • 苹果软件 做ppt模板下载网站有哪些制作网站的步骤和过程
  • 重庆做学校网站公司东莞百度快速优化排名