X Tutup
Skip to content

Commit d064fc1

Browse files
committed
no message
1 parent c2ee477 commit d064fc1

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed

course/19 并发编程原理.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
## 《Java并发编程原理与实战》学习记录
2+
官网:[【龙果学院】Java并发编程原理与实战](https://www.roncoo.com/course/view/b6f89747a8284f44838b2c4da6c8677b)
3+
4+
| 课程大纲 | 记录 |
5+
| ---------------------------------------------------------- | ---- |
6+
| 1 你真的了解并发吗? | |
7+
| 2 理解多线程与并发的之间的联系与区别 | |
8+
| 3 解析多线程与多进程的联系以及上下文切换所导致资源浪费问题 | |
9+
| 4 学习并发的四个阶段并推荐学习并发的资料 | |
10+
| 5 线程的状态以及各状态之间的转换详解 | |
11+
| 6 线程的初始化,中断以及其源码讲解 | |
12+
| 7 多种创建线程的方式案例演示(一)带返回值的方式 | |
13+
| 8 多种创建线程的方式案例演示(二)使用线程池 | |
14+
| 9 Spring对并发的支持:Spring的异步任务 | |
15+
| 10 使用jdk8提供的lambda进行并行计算 | |
16+
| 11 了解多线程所带来的安全风险 | |
17+
| 12 从线程的优先级看饥饿问题 | |
18+
| 13 从Java字节码的角度看线程安全性问题 | |
19+
| 14 synchronized保证线程安全的原理(理论层面) | |
20+
| 15 synchronized保证线程安全的原理(jvm层面) | |
21+
| 16 单例问题与线程安全性深入解析 | |
22+
| 17 理解自旋锁,死锁与重入锁 | |
23+
| 18 深入理解volatile原理与使用 | |
24+
| 19 JDK5提供的原子类的操作以及实现原理 | |
25+
| 20 Lock接口认识与使用 | |
26+
| 21 手动实现一个可重入锁 | |
27+
| 22 AbstractQueuedSynchronizer(AQS)详解 | |
28+
| 23 使用AQS重写自己的锁 | |
29+
| 24 重入锁原理与演示 | |
30+
| 25 读写锁认识与原理 | |
31+
| 26 细读ReentrantReadWriteLock源码 | |
32+
| 27 ReentrantReadWriteLock锁降级详解 | |
33+
| 28 线程安全性问题简单总结 | |
34+
| 29 线程之间的通信之wait/notify | |
35+
| 30 通过生产者消费者模型理解等待唤醒机制 | |
36+
| 31 Condition的使用及原理解析 | |
37+
| 32 使用Condition重写wait/notify案例并实现一个有界队列 | |
38+
| 33 深入解析Condition源码 | |
39+
| 34 实战:简易数据连接池 | |
40+
| 35 线程之间通信之join应用与实现原理剖析 | |
41+
| 36 ThreadLocal 使用及实现原理 | |
42+
| 37 并发工具类CountDownLatch详解 | |
43+
| 38 并发工具类CyclicBarrier 详解 | |
44+
| 39 并发工具类Semaphore详解 | |
45+
| 40 并发工具类Exchanger详解 | |
46+
| 41 CountDownLatch,CyclicBarrier,Semaphore源码解析 | |
47+
| 42 提前完成任务之FutureTask使用 | |
48+
| 43 Future设计模式实现(实现类似于JDK提供的Future) | |
49+
| 44 Future源码解读 | |
50+
| 45 Fork/Join框架详解 | |
51+
| 46 同步容器与并发容器 | |
52+
| 47 并发容器CopyOnWriteArrayList原理与使用 | |
53+
| 48 并发容器ConcurrentLinkedQueue原理与使用 | |
54+
| 49 Java中的阻塞队列原理与使用 | |
55+
| 50 实战:简单实现消息队列 | |
56+
| 51 并发容器ConcurrentHashMap原理与使用 | |
57+
| 52 线程池的原理与使用 | |
58+
| 53 Executor框架详解 | |
59+
| 54 实战:简易web服务器(一) | |
60+
| 55 实战:简易web服务器(二) | |
61+
| 56 JDK8的新增原子操作类LongAddr原理与使用 | |
62+
| 57 JDK8新增锁StampedLock详解 | |
63+
| 58 重排序问题 | |
64+
| 59 happens-before简单概述 | |
65+
| 60 锁的内存语义 | |
66+
| 61 volatile内存语义 | |
67+
| 62 final域的内存语义 | |
68+
| 63 实战:问题定位 | |

notes/JavaArchitecture/03 Java 并发编程.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -842,6 +842,14 @@ synchronized不仅保证可见性,而且还保证原子性,因为,只有
842842

843843

844844

845+
**这里区分一下并发和高并发的概念**
846+
847+
**并发**:多个线程操作相同的资源,保证线程安全,合理使用资源
848+
849+
**高并发**:服务能同时处理很多请求,提高程序性能
850+
851+
852+
845853
参考资料:
846854

847855
- [Cplusplus-Concurrency-In-Practice/1.1 What is concurrency.md at master · forhappy/Cplusplus-Concurrency-In-Practice](https://github.com/forhappy/Cplusplus-Concurrency-In-Practice/blob/master/zh/chapter1-Introduction/1.1%20What%20is%20concurrency.md)
@@ -914,6 +922,10 @@ synchronized不仅保证可见性,而且还保证原子性,因为,只有
914922

915923
#### 什么是死锁
916924

925+
造成死锁的原因就是多个线程或进程对同一个资源的争抢或相互依赖。一个最简单的解释就是你去面试,面试官问你告诉我什么是死锁,我就录用你,你回答面试官你录用我,我告诉你。
926+
927+
928+
917929
- 如果一个进程集合里面的每个进程都在等待只能由这个集合中的其他一个进程(包括他自身)才能引发的事件,这种情况就是死锁。
918930

919931
这个定义可能有点拗口,下面用一个简单例子说明。

notes/pics/Java并发编程ppt.rar

290 KB
Binary file not shown.

0 commit comments

Comments
 (0)
X Tutup