文章分类
愿你走出半生,归来仍是少年

CAS原理

处理并发问题 我认为V的值应该是A,如果是的话我就把它修改成B,如果不是A,那么说明A被人修改过了,那我就不修改了,避免多人同时修改造成错误, CAS 有3个操作数,内存值 V,预期值A,要修改的值 B,当且仅预期值A和内存值V 相同时,才将内存值修改为 B, 否则什么都不做,最后返回现在的 V 值 CAS算法理解......

AQS

锁的协作类共同点:闸门 (和 ReentrantLock、Semaphore相似) 不仅 ReentrantLock、Semaphore、像CountDownLatch、都有这样的协作 (或者同步)功能,其实,他们底层都用了一个共同的基类,这就是 AQS 因为这些协作类有很多工作都是类似的,所以如果提取出一个工具类,那么就直接就可以用 Semaphore 、CountDownLatch 内部有一个......

CyclicBarrier循环栅栏

CyclicBarrier循环栅栏和CountDownLatch 很类似 ,都能阻塞一组线程 当有大量线程相互配合,分别计算不同任务,并且需要最后统一汇总的时候,我们可以使用CyclicBarrier 。CyclicBarrier可以构造一个集结点,当某一个线程执行完毕,他就会到集结点等待,知道所有线程都到了集结点,那么该栅栏就被撤销,所以有线程在统一出发,继续执行剩下都任务。 ......

Condition接口(又称条件对象)

当线程1需要等待某个条件的时候 ,它就去执行 condition.await() 方法,一旦执行了 await()方法,线程就会进入阻塞状态 然后通常会有另外一个线程,假设是线程2,去执行对应的条件,知道这个条件成立,线程2就会去执行condition.signal() 方法,这是 JVM 就会被从阻塞的线程里找到那些等待该condition的线程,当线程1就会收到可执行信号的时候,他的线程状态就......

Semaphore信号量

Semaphore 可以用来限制或管理数量有限资源的使用情况 信号量的作用是用来维护一个“许可证”,的计数,线程可以获取 许可证,那信号量剩余许可证就减一,线程也可以是否一个许可证,那剩余的许可证就加一,当信号量拥有的许可证为0时,那么下一个线程想获得许可证,就要进行等待,直到另外线程释放许可证......

你所不知道的final

如果对象在被创建后,状态就不能被修改,那么他就是不可变的 具有不变性的对象,一定是线程安全的,我们不需要采取任何额外的安全措施,也能保证线程安全......

Atomic原子类-3

在Atomic原子类-1 和 Atomic原子类-2 - 我们介绍了Atomic 的用法以及简单的底层实现,那么我们这片文章讲下Atomic 的累加器......

Atomic原子类-2

上文我们介绍了Atomic原子类 并且写了 AtomicInteeger 的使用 简单的介绍了底层的实现 CAS......

自旋锁与阻塞锁

在 jdk 1.5 及以上并发框架 Java.util.concurrent 的 atomic 下 都是自旋锁实现的 AtomicInteger 的实现 :自旋锁的世勋啊原理是CAS AtomicInteger 中是调用底层unsafe 进行自增操作的源码中的 do-while 循环就是一个自旋操作,如果修改过程中一踏线程竞争导致修改失败,就在while 死循环,直至成功......

共享锁和排它锁

什么是共享锁和排它锁 排它锁,又称独占锁,独享锁 synchronized就是一个排它锁 共享锁,又称为读锁,获得共享锁后,可以查看,但无法删除和修改数 据, 其他线程此时业获取到共享锁,也可以查看但是 无法修改和 删除数据 共享锁和排它锁典型是ReentranReadWriteLock 其中,读锁是共享锁,写锁是 排它锁......

公平锁与非公平锁

公平是按照线程的请求顺序,来分配锁 非公平是指不完全按照请求的顺序,在一定情况下,可以插队的......

可重入锁与非可重入锁

**可重入锁又名递归锁**,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提锁对象得是同一个对象或者class),不会因为之前已经获取过还没释放而阻塞。Java中ReentrantLock和synchronized都是可重入锁,可重入锁的一个优点是可一定程度避免死锁。......

悲观锁&乐观锁

乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。......

IntelliJ IDEA最新版官方支持汉化

随着 **IntelliJ Idea 2020.1**的发布,IDEA对我们最大的亮点就是支持中文了,对于英文不好的同学,可以说是一大福利......

Java锁介绍

Java锁介绍:重入锁,公平锁,偏量锁 。。。。......

Atomic原子类-1

什么是原子类 - 不可分割的 - 一个操作是不可中断的,即使多线程的情况下业可以保证 - java.util.concurrent.atomic - 原子的作用和锁类似,是为了保证线程并发情况下线程安全,不过原子类相比于锁,有一定的优势 - 优势:粒度更细,原子变量可以吧竞争范围缩小到便俩个级别,这就是我们可以获取哦最细粒度的,通常锁的粒度大于锁的粒度 - 优势:效率更高......

JVM--Gc篇

**Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同数据区域**......

JVM--入门篇

Person.java -> 词法分析器 -> tokens流 -> 语法分析器 -> 语法树/抽象语法树 -> 语义分析器......

java基本类型

Java中的数据类型:基本数据类型和引用数据类型(复合数据类型) 1、基本数据类型:(四类八种)......

1 / 1