Java|面试官:连多线程问题你都一问三不知,还要我怎么“放水”?( 三 )


7. SynchronousQueue(不存储数据、可用于传递数据)
8. LinkedTransferQueue
9. LinkedBlockingDeque
15. CyclicBarrier、CountDownLatch、Semaphore 的用法

1. CountDownLatch(线程计数器 )
2. CyclicBarrier(回环栅栏-等待至 barrier 状态再全部同时执行)
3. Semaphore(信号量-控制同时访问的线程个数)
16. volatile 关键字的作用(变量可见性、禁止重排序)

1. 变量可见性
2. 禁止重排序
3. 比 sychronized 更轻量级的同步锁
4. 适用场景
17. 如何在两个线程之间共享数据

1. 将数据抽象成一个类 , 并将数据的操作作为这个类的方法
2. Runnable 对象作为一个类的内部类
18. ThreadLocal 作用(线程本地存储)

1. ThreadLocalMap(线程的一个属性)
2. 使用场景
19. synchronized 和 ReentrantLock 的区别

1. 两者的共同点
2. 两者的不同点
20. ConcurrentHashMap 并发1. 减小锁粒度
2. ConcurrentHashMap 分段锁

  • ConcurrentHashMap 是由 Segment 数组结构和 HashEntry 数组结构组成
21. Java 中用到的线程调度1. 抢占式调度
2. 协同式调度
3. JVM 的线程调度实现(抢占式调度)
4. 线程让出 cpu 的情况
22. 进程调度算法

1. 优先调度算法
2. 高优先权优先调度算法
3. 基于时间片的轮转调度算法
23. 什么是 CAS(比较并交换-乐观锁机制-锁自旋)1. 概念及特性
2. 原子包 java.util.concurrent.atomic(锁自旋)
3. ABA 问题
24. 什么是 AQS(抽象的队列同步器)1. Exclusive 独占资源-ReentrantLock
2. Share 共享资源-Semaphore/CountDownLatch
3. 同步器的实现是 ABS 核心(state 资源状态计数)
4. ReentrantReadWriteLock 实现独占和共享两种方式
答案预览:

这些知识点的导图和问题的答案详解的PDF文档都可以免费分享给大家 , 帮小编转发一下文章后 , 私信【666】免费领取!