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

网站建设是设计师吗恢复正常百度

网站建设是设计师吗,恢复正常百度,网站建设现状,做网站需要编码吗1.什么是volatile volatile是 轻 量 级 的 synchronized,它在多 处 理器开 发 中保 证 了共享 变 量的 “ 可 见 性 ” 。可 见 性的意思是当一个 线 程 修改一个共享变 量 时 ,另外一个 线 程能 读 到 这 个修改的 值 。如果 volatile 变 量修 饰 符使用…

1.什么是volatile

        volatile是 的 synchronized,它在多 理器开 中保 了共享 量的 。可 性的意思是当一个 线 程 修改一个共享变 ,另外一个 线 程能 个修改的 。如果 volatile 量修 符使用恰当的话 ,它比 synchronized 的使用和 行成本更低,因 它不会引起 线 程上下文的切 度。

2. volatile的工作原理

java的内存模型

       每个线程会有个相互独立的本地内存,本地内存中存放的是的主共享中变量的副本,线程操作这些副本,然后不定时的将他们返回给主内存中

       

使用volatile

        如果被volatile修饰,会通过嗅探立刻返回给主内存

        当某个线程把volatile修饰的变量从本地内存返回给主内存时,其他的本地内存保存的该变量无效,当然不能保证写后读,因为如果两线程都在写入的过程中时,还是会产生覆盖的

3. volatile的作用

        volatile只能用来修饰变量,在并发编程的三大特性——原子性、可见性、有序性中 volatile只能保证可见性和有序性(禁止指令重排[防止修饰的对象上一行下一行不重排序]),并不能保证原子性,而synchronized这三种特性都可以保证。

为什么没有保证原子性

  ++a的过程:

  1. 读取a的当前值。
  2. 将读取到的值增加1。(此时还没有写入到a)
  3. 将新值写回到a

    例如a被volatile修饰了,代码中定义了++a 可以看做(int k = a+1; a=k)的过程;

     这段代码中只能保证k读取的时候a是最新值,不能保证写回a的时候a是最新值(因为当前线程刚执行完1,2步,还没执行3,切换了时间片,此时并没有修改a的值所以不会写回到主内存),另一个线程执行了完整的1,2,3并放入主内存中,此时本地内存也会修改,接下来又切换回时间片,执行将新值写回到a,又回了主内存,此刻就产生了并发问题(如果还是想不通,可以想象3个线程下,第三个线程可能会读取到旧的值)

当然指使用volatile并不能保证线程安全,需要结合CAS失败重试策略,来保证线程安全的

4. 为什么使用了synchronized还需要volatile

用单例举例

public class Singleton {  private volatile static Singleton singleton;  private Singleton (){}  public static Singleton getSingleton() {  if (singleton == null) {  synchronized (Singleton.class) {  if (singleton == null) {  singleton = new Singleton();  }  }  }  return singleton;  }  
}

singleton = new Singleton() 在我们看来就是一句话操作而已,但在虚拟机看来它一共分为了几个指令操作:

  1. 为对象分配内存空间
  2. 初始化对象
  3. 将引用指向对象的内存空间地址

虚拟机执行的时候不一定是按顺序123的执行,也有可能是132。这是虚拟机的重排序引起的,单线程情况下是没有什么bug的,最终都会创建出对象,只是先后顺序不同。

但是在上面例子中会出现这么一种情况:

        假如线程A执行 single = new Single()虚拟机是按132排序执行,当执行到3的时候single 引用已经不为空。此时若线程B执行到第一次验校处(第一次验校不在同步代码中,因此所有线程随时都可以访问),它判断 single ==null 得到false,直接返回single对象。但是此时single对象还没初始化完成,因此很有可能就会发生bug。

在上诉单例模式中volatile保证了虚拟机执行字节码的时候指令不会重排序。

http://www.hkea.cn/news/942579/

相关文章:

  • 北京赛车彩票网站怎么做佛山本地网站建设
  • 门户网站的建设方式有哪些网络推广引流
  • 做中东服装有什么网站免费seo刷排名
  • 做网站用java还是c语言百度竞价推广培训
  • 做动画视频的网站市场监督管理局官网入口
  • 做bbs网站教程军事新闻最新消息今天
  • 在哪儿可以找到网站开发的需求搜索引擎优化介绍
  • 成都网站建设代理加盟网络运营培训班多少钱
  • 太原开发网站公司站长工具端口扫描
  • 域控制网站访问自媒体视频发布平台
  • 广西住房和城乡建设委员会网站湖南网站营销seo多少费用
  • 关键词推广名词解释百度竞价关键词怎么优化
  • 群辉服务器做网站网络优化的内容包括哪些
  • 做淘客的网站岳阳seo
  • 网吧设计方案seox
  • 谁做网站市场营销专业
  • 慈溪外贸公司网站网络营销就业前景和薪水
  • 电商网站建设实训报告长沙网站seo推广公司
  • 阿里云ecs怎么建网站吉林网站seo
  • 企业营销型网站建设的可行性西安竞价托管
  • 做网站如何适应分辨率网站分析培训班
  • 现在币圈有那些私募网站做的好百度推广账号登陆入口
  • 旅游网站图片营销公司排名
  • 做服务器的网站都有哪些搜狗关键词排名此会zjkwlgs
  • php动态网站开发 唐四薪 答案b站引流推广网站
  • 长沙3天2晚自由行攻略论述搜索引擎优化的具体措施
  • 外汇局网站做结汇申报被逆冬seo课程欺骗了
  • 网站运营配置免费网站在线观看人数在哪直播
  • 什么网站做一手房好系统优化的例子
  • wordpress 插入wordseo排名点击工具