File tree 1 file changed +9
-2
lines changed 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -355,6 +355,8 @@ void addIfNotExist(Vector v,
355
355
}
356
356
357
357
```
358
+
359
+ -------
358
360
# 7. Lock和Condition
359
361
## 重复造轮子的原因抑或Lock&Condition的优势
360
362
* 能够响应中断
@@ -430,6 +432,7 @@ public ReentrantLock(boolean fair){
430
432
* 永远只在访问可变的成员变量时加锁
431
433
* 永远不在调用其他对象的方法时加锁
432
434
435
+ -------
433
436
# 8.Semaphore
434
437
### 信号量模型
435
438

@@ -473,6 +476,7 @@ class Semaphore{
473
476
#### 实现限流器(Semaphore 可以允许多个线程访问一个临界区)
474
477
* [代码示例](https://github.com/Fadezed/concurrency/blob/master/src/main/java/com/example/concurrency/semaphore/SemaphoreEx.java)
475
478
479
+ -------
476
480
# 9.ReadWriteLock、StampedLock、CountDownLatch、CyclicBarrier
477
481
478
482
## ReadWriteLock 读写锁
@@ -492,7 +496,7 @@ class Semaphore{
492
496
* [代码示例](https://github.com/Fadezed/concurrency/blob/master/src/main/java/com/example/concurrency/cyclicBarrierEx/CyclicBarrierEx.java)
493
497
494
498
495
-
499
+ -------
496
500
# 10. 并发容器
497
501
## 同步容器(jdk1.5 之前)
498
502
### 包装安全类
@@ -560,6 +564,7 @@ CopyOnWriteArraySet、ConcurrentSkipListSet
560
564
* 双端非阻塞队列
561
565
* ConcurrentLinkedDeque
562
566
567
+ -------
563
568
564
569
# 11. 原子类
565
570
@@ -615,7 +620,8 @@ accumulateAndGet(x,func)
615
620
* LongAdder
616
621
617
622
618
- # 12. 线程池
623
+ -------
624
+ # 12. 线程池
619
625
620
626
## 为什么要用线程池
621
627
* 创建对象,仅仅是在 JVM 的堆里分配一块内存而已;
@@ -654,6 +660,7 @@ ThreadPoolExecutor(
654
660
* 慎用默认拒绝策略RejectedExecutionException不强制处理容易忽略,建议自定义拒绝策略配合策略降级使用
655
661
* 异常处理不会通知所有需要按需捕获处理异常
656
662
663
+ -------
657
664
# 13. Future
658
665
## 获得任务执行结果
659
666
* ThreadPoolExecutor提供了三个submit方法
You can’t perform that action at this time.
0 commit comments