JUC笔记

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

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

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


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

为以下3种形式。

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

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

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


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

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



处理器如何实现原子操作

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

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

 

Java如何实现原子操作

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

 

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

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

 

 

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

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

 

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,757评论 0 11
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,394评论 11 349
  • ② 古澜斯森林。 浓重的迷雾下,渐弱微暗的光线,在森林深处越发的阴森晦暗,极致的异常死寂,骤然发出巨大的...
    柯予宸阅读 535评论 0 0
  • 或许是你现在一开始就已经将“不喜欢我”作为了评价我的大背景,所以,才对我处处冷淡的吧,无论我怎么努力,也只会...
    毛球一样的傻子阅读 475评论 0 0
  • 绘画的过程是先需得法,中需有法,后需变法,无法之法乃为至法,大师无法。关于绘画,讲法是阶段的,也是分阶段的过了那个...
    画家方惠中阅读 300评论 2 3