JUC笔记

作者: 牡丹福 | 来源:发表于2018-05-14 08:41 被阅读0次

    下面来具体讲解volatile的两条实现原则。

    1)Lock前缀指令会引起处理器缓存回写到内存

    2)一个处理器的缓存回写到内存会导致其他处理器的缓存无效。

    利用synchronized实现同步的基础:Java中的每一个对象都可以作为锁。具体表现

    为以下3种形式。

    ·对于普通同步方法,锁是当前实例对象。

    ·对于静态同步方法,锁是当前类的Class对象。

    ·对于同步方法块,锁是Synchonized括号里配置的对象。

    锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状

    态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。锁可以升级但不能降级

    处理器如何实现原子操作

    第一个机制是通过总线锁保证原子性

    第二个机制是通过缓存锁定来保证原子性

     

    Java如何实现原子操作

    在Java中可以通过循环CAS的方式来实现原子操作。

     

    CAS实现原子操作的三大问题

    1)ABA问题。2)循环时间长开销大。3)只能保证一个共享变量的原子操作。

     

     

    在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步

    线程之间的通信机制有两种:共享内存消息传递。

     

    Java线程之间的通信由Java内存模型(本文简称为JMM)控制

    相关文章

      网友评论

          本文标题:JUC笔记

          本文链接:https://www.haomeiwen.com/subject/rwqddftx.html