- 博客(4)
- 收藏
- 关注
原创 并发系列(四)-----CAS
一 简介 保证Java中的原子操做方式有两种方式 1 加锁(可以理解悲观锁机制) 2 CAS(可以理解为乐观锁机制) CAS全称是Compare and Swap 即比较并替换。在JDK中许多地方都可以看到它的身影,比如AQS同步组件,Atomic原子类操作等等都是以CAS实现的。其中java.util.concurrent 中的许多概念源自 Doug Lea 的 util.con...
2018-07-30 11:30:16 273
原创 并发系列(三)-----volatile
一 简介 volatile关键字是轻量级的synchronized,volatile在并发编程中保证共享变量的可见性,当一个线程修改被volatile修饰的共享变量时,另外一个线程就能读到这个修改的值。volatile可以保证共享变量的可见性但不能保证复合操做的原子性:比如像i++这样的操做是volatile是不能保证的。 二 volatile变量的特性 被volatile修饰的变量...
2018-07-17 09:31:32 299
原创 并发系列(二)-----Java内存模型
一简介 在并发编程中,两个线程(A,B)同时操作一个普通变量的时候,会出现线程甲在操作变量时线程乙也将变量操作了,此时线程甲是无法感知变量发生变化的,造成变量改变错误。根据以上例子我们需要解决的问题就是线程之间的通信以及同步。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。java并发采用的是共享内存模型,Java的线程之间的通信总是隐式进行,整个通信对程序员玩完全透明。 ...
2018-07-07 16:16:44 347
原创 并发系列(一)-----synchronized关键字
一 简介 说到并发不得不提的synchronized,synchronized关键字是元老级别的角色。在Java SE 1.6之前synchronized被称为是重量,在1.6之后对同步进行了一系列的优化,使它的“重量”发生变化。这篇文章主要介绍同步的原理和它“重量”变化 二 表现形式 同步代码在表现的形式有三种同步在代码的表现形式有三种 1.对于同步方法,锁是当前...
2018-07-02 14:32:50 356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人