Android进阶之路

Java-并发编程知识点总结

2020-10-26  本文已影响0人  王英豪

目录:

  1. 线程基础
  2. 线程池
  3. 各种各样的锁
  4. 并发容器
  5. 原子类
  6. Java 内存模型
  7. 线程协作
  8. AQS 框架

一、线程基础

1. 为什么继承 runnable 接口比继承 Thread 类的线程实现方式好?

2. 线程是如何在 6 种状态之间转化的?

3. 如何理解锁池和等待池?

4. 为什么 Object#wait 要写在 while(condition) 循环中?

5. 如何正确的中断线程?

6. Object#wait 和 Thread#sleep 方法的异同?

二、线程池

1. 使用线程池相比手动创建线程有什么优点?

2. 线程池各个参数的含义?

3. 线程池的四种拒绝策略?

4. 有哪 6 种常见的线程池?

5. 线程池常用的阻塞队列有哪些?

6. 为什么不建议使用常见的线程池?

7. 合适的线程数量是多少?

8. 如何正确的关闭线程池?

9. 线程池线程复用的原理?

三、各种各样的锁

1. 悲观锁/乐观锁

2. 可重入锁/非可重入

3. 共享锁/独占锁

4. 自旋锁/非自旋锁

5. 公平锁/非公平锁

6. 可中断锁/不可中断锁

7. 偏向锁/轻量级锁/重量级锁

8. JVM 对 synchronized 锁做了哪些优化?

四、并发容器

1. Vector/HashTab

2. ConcurrentHashMap

3. CopyOnWriteArrayList

五、原子类

1. 基本类型原子类

2. 数组类型原子类

3. 引用类型原子类

4. 升级类型原子类

5. 累加器

6. 积累器

7. 原子类与锁

8. 原子类与 volatile

六、Java 内存模型

1. 内存结构与内存模型

2. 主内存和工作内存

3. 内存可见性

4. 指令重排序

七、线程协作

1. Semaphore

2. CountDownLatch

3. CyclicBarrier

八、AQS 框架

1. AQS 及存在的意义?

2. AQS 内部的关键原理

上一篇 下一篇

猜你喜欢

热点阅读