JUC简笔
文章平均质量分 80
食鱼酱
一只努力向上的程序员
展开
-
JUC简笔4-volatile内存可见性
首先来看一段代码 public class Solution { public static void main(String[] args) { ThreadDemo td = new ThreadDemo(); new Thread(td).start(); while(true) { //判断td...原创 2018-07-02 09:57:51 · 217 阅读 · 0 评论 -
JUC简笔5-多线程下的非原子操作
在JUC简笔1-volatile内存可见性中讲到了volatile不能保证变量的原子性,现在就对原子性进行分析。 原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断。 先看一个demo: public class Solution { public static void main(String[] args) { int i = 10; ...原创 2018-07-02 12:21:27 · 232 阅读 · 0 评论 -
JUC简笔1-synchronized的原理
谈到并发,我们首先想到的就是多线程,其次就是保证并发能正常进行的锁。在学习Java多线程时,最常见的一种锁就是通过synchronized实现,我们也把它叫作同步,包括了同步方法和同步代码块。 public synchronized void test1() { //我是一个同步方法 } public void test2() { s...原创 2018-04-21 19:09:27 · 345 阅读 · 1 评论 -
JUC简笔2-AQS源码分析
1、什么是AQS? AQS全称,AbstractQueuedSynchronizer,意思大概就是“抽象队列同步器”,这个名词有点抽象,我们来先看看源码中的介绍,lalalalala…..,一大段英文。 /** * Provides a framework for implementing blocking locks and related * synchronizers (sema...原创 2018-04-30 16:24:13 · 398 阅读 · 0 评论 -
JUC简笔3-ReentranLock的组成与使用
1、什么是ReentranLock? ReentranLock,是一个可重入的互斥锁,又被称为“独占锁”;ReentrantLock锁在同一个时间点只能被一个线程锁持有;而可重入的意思是,ReentrantLock锁,可以被单个线程多次获取。 2、ReentranLock的组成 继承关系:实现Lock接口; 通过Sync类(Sync类继承于AQS)实现同步状态更新,它有FairSyn原创 2018-05-22 11:02:43 · 235 阅读 · 0 评论