并发编程
-
6.实现 Callable 接口
6.实现 Callable 接口 前言 本篇章来介绍一下创建线程的第三种方式,其中创建线程一共有四种方式: 继承 Thread 类 实现 Runnable 接口 实现 Callab…
-
7.Lock 同步锁
7.Lock 同步锁 Lock( 锁 ) 从 JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。 java.u…
-
8.Condition 控制线程通信
8.Condition 控制线程通信 前言 前一篇我们讲述了 同步锁 Lock,那么下面肯定就要讲解一下 同步锁 Lock 如何控制线程之间的通讯。 不过,在讲解 同步锁 Lock…
-
9.线程按序交替
9.线程按序交替 线程按序交替 – 编写一个程序,开启 3 个线程,这三个线程的 ID 分别为 A、B、C,每个线程将自己的 ID 在屏幕上打印 10 遍,要求…
-
10.ReadWriteLock 读写锁
10.ReadWriteLock 读写锁 读-写锁 ReadWriteLock – ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。…
-
11.线程八锁
11.线程八锁 线程八锁 • 一个对象里面如果有多个synchronized方法,某一个时刻内,只要一个线程去调用其中的一个synchronized方法了,其它的线程都只…
-
12.线程池
12.线程池 线程池 背景:经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。 思路:提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中。可以…
-
13.线程调度
13.线程调度 前言 上一章节我们讲了线程池,那么下面来讲线程池的延时调度执行。 ScheduledExecutorService 一个 ExecutorService,…
-
14.ForkJoinPool 分支-合并框架 工作窃取
14.ForkJoinPool 分支-合并框架 工作窃取 Fork/Join 框架 Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(…
-
JUC–CAS底层
JUC–CAS底层 其实在volatile的时候已经分享过程序原子性问题,而jdk提供的原子对象的底层逻辑就是CAS(compare-And-Swap)。 CAS底层 …
-
JUC–Java内存模型(JMM)
JUC–Java内存模型(JMM) 今天继续介绍多线程编程相关java内存模型。 Java的并发采用的是共享内存模型。 JMM即Java内存模型(Java memory…
-
JUC–闭锁
JUC–闭锁 是多线程同步辅助工具,闭锁可以延迟线程的进度直到其到达终止状态,闭锁可以用来确保某些活动直到其他活动都完成才继续执行 闭锁是多线程同步辅助工具,闭锁可以延…
-
JUC–ConcurrentHashMap
JUC–ConcurrentHashMap 当我们谈论ConcurrentHashMap,一般会涉及这些问题:HashMap线程不安全,怎么解决?为什么不用HashTa…
-
JUC–线程创建
JUC–线程创建 线程创建有几种方式?你都会用吗? 方式一 通过继承Thread class ExtendThread extends&…
-
一个volatile跟面试官扯了半个小时
《安琪拉与面试官二三事》系列文章一个HashMap能跟面试官扯上半个小时 一个synchronized跟面试官扯了半个小时 前言 volatile 应该算是Java 后端面试的必考…
-
阿里面试官问我Java线程和操作系统线程什么关系
这个问题是安琪拉之前面试被问到的一个问题,正好顺着上一篇文章介绍完线程调用时的用户态和内核态的切换,后续把Java 并发的都一起讲了。 面试官:听前一个面试官说你Java并发这块掌…