Skip to content

Commit ecbf93f

Browse files
committed
📝线程池
1 parent c6fcbec commit ecbf93f

File tree

7 files changed

+632
-14
lines changed

7 files changed

+632
-14
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
3+
![img](https://www.runoob.com/wp-content/uploads/2014/01/2243690-9cd9c896e0d512ed.gif)
4+
5+
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。
6+
7+
集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:
8+
9+
-
10+
11+
**接口:**是代表集合的抽象数据类型。例如 Collection、List、Set、Map 等。之所以定义多个接口,是为了以不同的方式操作集合对象
12+
13+
- **实现(类):**是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构,例如:ArrayList、LinkedList、HashSet、HashMap。
14+
15+
- **算法:**是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。
16+
17+
除了集合,该框架也定义了几个 Map 接口和类。Map 里存储的是键/值对。尽管 Map 不是集合,但是它们完全整合在集合中。
18+
19+
20+
21+
![img](https://www.runoob.com/wp-content/uploads/2014/01/java-coll.png)
22+
23+
24+
25+
Java 集合框架提供了一套性能优良,使用方便的接口和类,java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包。
26+
27+
28+
29+
30+
31+
------
32+
33+
34+
35+
36+
37+
38+
39+
40+
41+
42+
43+
44+
45+
https://www.javatpoint.com/java-arraylist
46+
47+
48+
49+
50+
51+
https://www.runoob.com/java/java-collections.html

docs/java/JUC/CAS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Atomic 包中的类可以分成 4 组:
3434
2. 数组类型:tomicIntegerArray,AtomicLongArray,AtomicReferenceArray
3535
3. 引用类型:AtomicReference,AtomicMarkableReference,AtomicStampedReference
3636
4. 对象的属性修改类型 :AtomicIntegerFieldUpdater,AtomicLongFieldUpdater,AtomicReferenceFieldUpdater
37-
5. JDK1.8新增:DoubleAccumulator、LongAccumulator、DoubleAdder、LongAdder、Striped64
37+
5. JDK1.8 新增:DoubleAccumulator、LongAccumulator、DoubleAdder、LongAdder、Striped64
3838

3939

4040

@@ -90,7 +90,7 @@ false current num:7
9090
- 要修改的更新值 B
9191
- 当且仅当 V 的值等于 A 时,CAS 通过原子方式用新值 B 来更新 V 的 值,否则不会执行任何操作(他的功能是判断内存某个位置的值是否为预期值,如果是则更改为新的值,这个过程是原子的。)
9292

93-
CAS 并发原语体现在 Java 语言中的 `sum.misc.Unsafe` 类中的各个方法。调用 Unsafe 类中的 CAS 方法, JVM 会帮助我们实现出 CAS 汇编指令。这是一种完全依赖于硬件的功能,通过它实现了原子操作。再次强调,由于 CAS是一种系统原语,**原语属于操作系统用于范畴,是由若干条指令组成的,用于完成某个功能的一个过程,并且原语的执行必须是连续的****在执行过程中不允许被中断**,CAS 是一条 CPU 的原子指令,不会造成数据不一致问题。
93+
CAS 并发原语体现在 Java 语言中的 `sum.misc.Unsafe` 类中的各个方法。调用 Unsafe 类中的 CAS 方法, JVM 会帮助我们实现出 CAS 汇编指令。这是一种完全依赖于硬件的功能,通过它实现了原子操作。再次强调,由于 CAS是一种系统原语,**原语属于操作系统用于范畴,是由若干条指令组成的,用于完成某个功能的一个过程,并且原语的执行必须是连续的在执行过程中不允许被中断**,CAS 是一条 CPU 的原子指令,不会造成数据不一致问题。
9494

9595
我们常用的 `java.util.concurrent` 包就建立在CAS之上。
9696

0 commit comments

Comments
 (0)