From f620065c81169d5c036fb5f546c5faa58018a875 Mon Sep 17 00:00:00 2001 From: crossoverJie Date: Sun, 8 Apr 2018 22:37:24 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=8D=95=E4=BE=8B=E6=A8=A1=E5=BC=8F=20vola?= =?UTF-8?q?tile=20=E7=9A=84=E4=BD=9C=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes/设计模式.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/notes/设计模式.md b/notes/设计模式.md index fd0f6ee4..a6008027 100644 --- a/notes/设计模式.md +++ b/notes/设计模式.md @@ -126,6 +126,19 @@ if (uniqueInstance == null) { } ``` + +uniqueInstance 采用 volatile 关键字修饰也是很有必要的。 + +`uniqueInstance = new Singleton();` 这段代码其实是分为三步执行。 + +1. 分配内存空间。 +2. 初始化对象。 +3. 将 uniqueInstance 指向分配的内存地址。 + +但是由于 JVM 具有指令重排的特性,有可能执行顺序变为了 `1>3>2`,这在单线程情况下自然是没有问题。但如果是多线程就有可能 B 线程获得是一个还没有被初始化的对象以致于程序出错。 + +所以使用 volatile 修饰的目的是禁止 JVM 的指令重排,保证在多线程环境下也能正常运行。 + # 三、简单工厂 ## 意图 From e287699d3829bb3c3c29aa430174bdc3f79b4f79 Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sun, 8 Apr 2018 23:34:51 +0800 Subject: [PATCH 2/2] auto commit --- notes/Java 并发.md | 201 +++++++++++++++++++++++++++++++++++++--- notes/设计模式.md | 7 +- pics/CountdownLatch.png | Bin 0 -> 17408 bytes pics/CyclicBarrier.png | Bin 0 -> 20480 bytes pics/Semaphore.png | Bin 0 -> 27648 bytes 5 files changed, 190 insertions(+), 18 deletions(-) create mode 100644 pics/CountdownLatch.png create mode 100644 pics/CyclicBarrier.png create mode 100644 pics/Semaphore.png diff --git a/notes/Java 并发.md b/notes/Java 并发.md index 96d344a7..46f57d84 100644 --- a/notes/Java 并发.md +++ b/notes/Java 并发.md @@ -28,23 +28,30 @@ * [join()](#join) * [wait() notify() notifyAll()](#wait-notify-notifyall) * [await() signal() signalAll()](#await-signal-signalall) +* [七、J.U.C - AQS](#七juc---aqs) + * [CountdownLatch](#countdownlatch) + * [CyclicBarrier](#cyclicbarrier) + * [Semaphore](#semaphore) +* [八、J.U.C - 其它组件](#八juc---其它组件) + * [FutureTask](#futuretask) * [BlockingQueue](#blockingqueue) -* [七、线程不安全示例](#七线程不安全示例) -* [八、Java 内存模型](#八java-内存模型) + * [ForkJoin](#forkjoin) +* [九、线程不安全示例](#九线程不安全示例) +* [十、Java 内存模型](#十java-内存模型) * [主内存与工作内存](#主内存与工作内存) * [内存间交互操作](#内存间交互操作) * [内存模型三大特性](#内存模型三大特性) * [先行发生原则](#先行发生原则) -* [九、线程安全](#九线程安全) +* [十一、线程安全](#十一线程安全) * [线程安全分类](#线程安全分类) * [线程安全的实现方法](#线程安全的实现方法) -* [十、锁优化](#十锁优化) +* [十二、锁优化](#十二锁优化) * [自旋锁与自适应自旋](#自旋锁与自适应自旋) * [锁消除](#锁消除) * [锁粗化](#锁粗化) * [轻量级锁](#轻量级锁) * [偏向锁](#偏向锁) -* [九、多线程开发良好的实践](#九多线程开发良好的实践) +* [十三、多线程开发良好的实践](#十三多线程开发良好的实践) * [参考资料](#参考资料) @@ -683,6 +690,168 @@ public class AwaitSignalExample { } ``` +# 七、J.U.C - AQS + +java.util.concurrent(J.U.C)大大提高了并发性能,AQS 被认为是 J.U.C 的核心。 + +## CountdownLatch + +用来控制一个线程等待多个线程。 + +维护了一个计数器 cnt,每次调用 countDown() 方法会让计数器的值减 1,减到 0 的时候,那些因为调用 await() 方法而在等待的线程就会被唤醒。 + +

+ +```java +public class CountdownLatchExample { + + public static void main(String[] args) throws InterruptedException { + final int totalTread = 10; + CountDownLatch countDownLatch = new CountDownLatch(totalTread); + ExecutorService executorService = Executors.newCachedThreadPool(); + for (int i = 0; i < totalTread; i++) { + executorService.execute(() -> { + System.out.print("run.."); + countDownLatch.countDown(); + }); + } + countDownLatch.await(); + System.out.println("end"); + executorService.shutdown(); + } +} +``` + +```html +run..run..run..run..run..run..run..run..run..run..end +``` + +## CyclicBarrier + +用来控制多个线程互相等待,只有当多个线程都到达时,这些线程才会继续执行。 + +和 CountdownLatch 相似,都是通过维护计数器来实现的。但是它的计数器是递增的,每次执行 await() 方法之后,计数器会加 1,直到计数器的值和设置的值相等,等待的所有线程才会继续执行。和 CountdownLatch 的另一个区别是 CyclicBarrier 的计数器可以循环使用,所以它才叫做循环屏障。 + +下图应该从下往上看才正确。 + +

+ +```java +public class CyclicBarrierExample { + public static void main(String[] args) throws InterruptedException { + final int totalTread = 10; + CyclicBarrier cyclicBarrier = new CyclicBarrier(totalTread); + ExecutorService executorService = Executors.newCachedThreadPool(); + for (int i = 0; i < totalTread; i++) { + executorService.execute(() -> { + System.out.print("before.."); + try { + cyclicBarrier.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (BrokenBarrierException e) { + e.printStackTrace(); + } + System.out.print("after.."); + }); + } + executorService.shutdown(); + } +} +``` + +```html +before..before..before..before..before..before..before..before..before..before..after..after..after..after..after..after..after..after..after..after.. +``` + +## Semaphore + +Semaphore 就是操作系统中的信号量,可以控制对互斥资源的访问线程数。 + +

+ +以下代码模拟了对某个服务的并发请求,每次只能由 3 个客户端同时访问,请求总数为 10。 + +```java +public class SemaphoreExample { + public static void main(String[] args) { + final int clientCount = 3; + final int totalRequestCount = 10; + Semaphore semaphore = new Semaphore(clientCount); + ExecutorService executorService = Executors.newCachedThreadPool(); + for (int i = 0; i < totalRequestCount; i++) { + executorService.execute(()->{ + try { + semaphore.acquire(); + System.out.print(semaphore.availablePermits() + " "); + semaphore.release(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); + } + executorService.shutdown(); + } +} +``` + +```html +2 1 2 2 2 2 2 1 2 2 +``` + +# 八、J.U.C - 其它组件 + +## FutureTask + +在介绍 Callable 时我们知道它可以有返回值,返回值通过 Future 进行封装。FutureTask 实现了 RunnableFuture 接口,该接口继承自 Runnable 和 Future 接口,这使得 FutureTask 既可以当做一个任务执行,也可以有返回值。 + +```java +public class FutureTask implements RunnableFuture +``` + +```java +public interface RunnableFuture extends Runnable, Future +``` + +当一个计算任务需要执行很长时间,那么就可以用 FutureTask 来封装这个任务,用一个线程去执行该任务,然后执行其它任务。当需要该任务的计算结果时,再通过 FutureTask 的 get() 方法获取。 + +```java +public class FutureTaskExample { + public static void main(String[] args) throws ExecutionException, InterruptedException { + FutureTask futureTask = new FutureTask(new Callable() { + @Override + public Integer call() throws Exception { + int result = 0; + for (int i = 0; i < 100; i++) { + Thread.sleep(10); + result += i; + } + return result; + } + }); + + Thread computeThread = new Thread(futureTask); + computeThread.start(); + + Thread otherThread = new Thread(() -> { + System.out.println("other task is running..."); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + }); + otherThread.start(); + System.out.println(futureTask.get()); + } +} +``` + +```html +other task is running... +4950 +``` + ## BlockingQueue java.util.concurrent.BlockingQueue 接口有以下阻塞队列的实现: @@ -692,10 +861,6 @@ java.util.concurrent.BlockingQueue 接口有以下阻塞队列的实现: 提供了阻塞的 take() 和 put() 方法:如果队列为空 take() 将阻塞,直到队列中有内容;如果队列为满 put() 将阻塞,指到队列有空闲位置。 -它们响应中断,当收到中断请求的时候会抛出 InterruptedException,从而提前结束阻塞状态。 - -是线程安全的。 - **使用 BlockingQueue 实现生产者消费者问题** ```java @@ -774,7 +939,13 @@ Consumer-3 is consuming product.( Made By Producer-3 ) Consumer-4 is consuming product.( Made By Producer-4 ) ``` -# 七、线程不安全示例 + +## ForkJoin + +// TODO + + +# 九、线程不安全示例 如果多个线程对同一个共享数据进行访问而不采取同步操作的话,那么操作的结果是不一致的。 @@ -815,7 +986,7 @@ public class ThreadUnsafeExample { 997 ``` -# 八、Java 内存模型 +# 十、Java 内存模型 Java 内存模型视图屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。 @@ -1019,7 +1190,7 @@ join() 方法返回先行发生于 Thread 对象的结束。 如果操作 A 先行发生于操作 B,操作 B 先行发生于操作 C,那么操作 A 先行发生于操作 C。 -# 九、线程安全 +# 十一、线程安全 ## 线程安全分类 @@ -1334,7 +1505,7 @@ public T get() { ThreadLocal 从理论上讲并不是用来解决多线程并发问题的,因为根本不存在多线程竞争。在一些场景 (尤其是使用线程池) 下,由于 ThreadLocal.ThreadLocalMap 的底层数据结构导致 ThreadLocal 有内存泄漏的情况,尽可能在每次使用 ThreadLocal 后手动调用 remove(),以避免出现 ThreadLocal 经典的内存泄漏甚至是造成自身业务混乱的风险。 -# 十、锁优化 +# 十二、锁优化 高效并发是从 JDK 1.5 到 JDK 1.6 的一个重要改进,HotSpot 虚拟机开发团队在这个版本上花费了大量的精力去实现各种锁优化技术,如适应性自旋(Adaptive Spinning)、锁消除(Lock Elimination)、锁粗化(Lock Coarsening)、轻量级锁(Lightweight Locking)和偏向锁(Biased Locking)等。这些技术都是为了在线程之间更高效地共享数据,以及解决竞争问题,从而提高程序的执行效率。 @@ -1409,7 +1580,8 @@ public static String concatString(String s1, String s2, String s3) { 偏向锁可以提高带有同步但无竞争的程序性能。它同样是一个带有效益权衡(Trade Off)性质的优化,也就是说,它并不一定总是对程序运行有利,如果程序中大多数的锁总是被多个不同的线程访问,那偏向模式就是多余的。在具体问题具体分析的前提下,有时候使用参数 -XX:-UseBiasedLocking 来禁止偏向锁优化反而可以提升性能。 -# 九、多线程开发良好的实践 + +# 十三、多线程开发良好的实践 1. 给线程起个有意义的名字,这样可以方便找 Bug; @@ -1432,3 +1604,4 @@ public static String concatString(String s1, String s2, String s3) { - [Java - Understanding Happens-before relationship](https://www.logicbig.com/tutorials/core-java-tutorial/java-multi-threading/happens-before.html) - [6장 Thread Synchronization](https://www.slideshare.net/novathinker/6-thread-synchronization) - [How is Java's ThreadLocal implemented under the hood?](https://stackoverflow.com/questions/1202444/how-is-javas-threadlocal-implemented-under-the-hood/15653015) +- [Concurrent](https://sites.google.com/site/webdevelopart/21-compile/06-java/javase/concurrent?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showPrintDialog=1) diff --git a/notes/设计模式.md b/notes/设计模式.md index a6008027..21ce516f 100644 --- a/notes/设计模式.md +++ b/notes/设计模式.md @@ -126,14 +126,13 @@ if (uniqueInstance == null) { } ``` - uniqueInstance 采用 volatile 关键字修饰也是很有必要的。 `uniqueInstance = new Singleton();` 这段代码其实是分为三步执行。 -1. 分配内存空间。 -2. 初始化对象。 -3. 将 uniqueInstance 指向分配的内存地址。 +1. 分配内存空间。 +2. 初始化对象。 +3. 将 uniqueInstance 指向分配的内存地址。 但是由于 JVM 具有指令重排的特性,有可能执行顺序变为了 `1>3>2`,这在单线程情况下自然是没有问题。但如果是多线程就有可能 B 线程获得是一个还没有被初始化的对象以致于程序出错。 diff --git a/pics/CountdownLatch.png b/pics/CountdownLatch.png new file mode 100644 index 0000000000000000000000000000000000000000..1a581bbf34ade60d8298aed50126275c5674410c GIT binary patch literal 17408 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 literal 0 HcmV?d00001