02 多线程与锁
2021-04-11 12:47:06 0 举报
AI智能生成
02 多线程与锁,能够让你很好的理解多线程和锁的知识
作者其他创作
大纲/内容
线程
基础知识
线程的状态
Java 线程具有五中基本状态
在 Java 中守护线程和本地线程区别。
创建线程的有哪些方式?
对比
什么是Java的内存模型,Java中各个线程是怎么彼此看到对方的 变量的?
高频考点
sleep( ) 和 wait( n)、wait( ) 的区别?
讲讲 java 同步机制的 wait 和 notify。
ThreadLocal
ThreadLocal 用过吗, 用途是什么, 原理是什么, 需要注意什么
ThreadLocal 是否可以用 static 修饰。
ThreadLocal(线程局部变量)关键字内部实现机制
请 谈 谈 ThreadLocal 是 怎 么 解 决 并 发 安 全 的
很 多 人 都 说 要 慎 用 ThreadLocal, 谈 谈 你 的 理 解 , 使 用
ThreadLocal 需 要 注 意 些 什 么 ?
ThreadLocal 需 要 注 意 些 什 么 ?
如 何 让 Java 的 线 程 彼 此 同 步 ? 你 了 解 过 哪 些 同 步 器 ? 请 分 别
介 绍 下 。
介 绍 下 。
多线程
我们为什么要使用线程池?核心线程池内部实现了解吗?
面试官:核心线程池内部实现了解吗?
多线程的几种实现方式, 什么是线程安全
个线程池设计的最大线程数应该考量哪些因素。
用过线程池吗? 如果用过, 请说明原理, 并说说 newCache 和 newFixed
有什么区别, 构造函数的各个参数的含义是什么, 比如 coreSize、 maxSize 等
有什么区别, 构造函数的各个参数的含义是什么, 比如 coreSize、 maxSize 等
线程池的关闭方式有几种, 各自的区别是什么。
创 建 线 程 池 的 几 个 核 心 构 造 参 数 ?
线 程 池 中 的 线 程 是 怎 么 创 建 的 ? 是 一 开 始 就 随 着 线 程 池 的 启 动
创 建 好 的 吗 ?
创 建 好 的 吗 ?
既 然 提 到 可 以 通 过 配 置 不 同 参 数 创 建 出 不 同 的 线 程 池 , 那 么
Java 中 默 认 实 现 好 的 线 程 池 又 有 哪 些 呢 ? 请 比 较 它 们 的 异 同
Java 中 默 认 实 现 好 的 线 程 池 又 有 哪 些 呢 ? 请 比 较 它 们 的 异 同
如 何 在 Java 线 程 池 中 提 交 线 程 ?
Java中的线程池是如何实现的?
锁
实现可见性的方法有哪些?
用过哪些原子类, 他们的原理是什么。
有哪些无锁的数据结构, 怎么做。
导致线程死锁的原因, 怎么解除线程死锁。
synchronized
synchronized 关键字底层实现
synchronized 的原理是什么, 一般用在什么地方(比如加载静态方法和非
静态方法的区别)
静态方法的区别)
当一个线程进入某一个对象的一个 synchronized 的实例方法后, 其他线
程是否可以进入此对象的其他方法。
程是否可以进入此对象的其他方法。
Lock 和 Synchronized 的区别
你 刚 才 提 到 获 取 对 象 的 锁 , 这 个 “ 锁 ” 到 底 是 什 么 ? 如 何 确 定
对 象 的 锁
对 象 的 锁
什 么 是 可 重 入 性 , 为 什 么 说 Synchronized 是 可 重 入 锁 ?
为 什 么 说 Synchronized 是 非 公 平 锁 ?
什 么 是 锁 消 除 和 锁 粗 化 ?
为 什 么 说 Synchronized 是 一 个 悲 观 锁 ? 乐 观 锁 的 实 现 原 理
又 是 什 么 ? 什 么 是 CAS, 它 有 什 么 特 性
又 是 什 么 ? 什 么 是 CAS, 它 有 什 么 特 性
乐 观 锁 一 定 就 是 好 的 吗 ?
为什么 wait(),notify(),notifyAll()必须在同步(Synchronized) 方法/代
码块中调用?
码块中调用?
JVM对Java的原生锁做了哪些优化?
volatile
volatile 关键字?
volatile 能使得一个非原子操作变成原子操作吗?
volatile 修饰符的有过什么实践?
volatile 的原理, 作用, 能代替锁吗?
可以创建 volatile 数组吗?
内存屏障与volatile:
指令重排序, 内存屏障, happenbefore, 主内存, 工作内存等
请谈谈volatile有什么特点,为什么它能保证变量对所有线程的可见 性?
既然volatile能够保证线程间的变量可见性,是不是就意味着基于 volatile变量的运算就是并发安全的?
请对比下volatile对比Synchronized的异同。
ReentrantLock
跟 Synchronized 相 比 , 可 重 入 锁 ReentrantLock 其 实 现
原 理 有 什 么 不 同 ?
原 理 有 什 么 不 同 ?
那 么 请 谈 谈 AQS 框 架 是 怎 么 回 事 儿 ?
ReentrantLock 是 如 何 实 现 可 重 入 性 的 ?
请尽可能详尽地对比下Synchronized和ReentrantLock的异同。
ThreadLocal
请谈谈ThreadLocal是怎么解决并发安全的?
很多人都说要慎用ThreadLocal,谈谈你的理解,使用
JUC
countdowlatch 和 cyclicbarrier 的内部原理和用法, 以及相互之间的差
别(比如 countdownlatch 的 await 方法和是怎么实现的)。
别(比如 countdownlatch 的 await 方法和是怎么实现的)。
简述 ConcurrentLinkedQueue 和 LinkedBlockingQueue 的用处和不同
之处。
之处。
用过读写锁吗, 原理是什么, 一般在什么场景下用。
开启多个线程, 如果保证顺序执行, 有哪几种实现方式, 或者如何保证多
个线程都执行完毕后再拿到结果
个线程都执行完毕后再拿到结果
LockSupport 的优势。
BlockingQueue 是什么。
我们知道hashmap线程不安全,那⽤什么类可以代替它保证线程安全呢?他们⼜是如何实现线程安全的呢?
除 了 ReetrantLock, 你 还 接 触 过 JUC 中 的 哪 些 并 发 工 具 ?
CyclicBarrier 和 CountDownLatch 看 起 来 很 相 似 , 请 对 比
下 呢
下 呢
ConcurrentHashMap
ConcurrentHashMap的原理
ConcurrentHashMap使⽤原理
ConcurrentHashMap 为何读不加锁
HashMap 如何同步。
读写锁
请 谈 谈 ReadWriteLock 和 StampedLock。
AQS
AQS 组件总结。
对 AbstractQueuedSynchronizer 了解多少, 讲讲加锁和解锁的流程, 独
占锁和公平锁加锁有什么不同
那么请谈谈AQS框架是怎么回事儿?
除了 ReetrantLock,你还接触过JUC中的哪些并发工具?
如何让Java的线程彼此同步?你了解过哪些同步器?请分别介绍下。
CyclicBarrier和CountDownLatch看起来很相似,请对比下呢?
如何实现一个并发安全的链表。
用三个线程按顺序循环打印 abc 三个字母, 比如 abcabcabc?
自由主题
0 条评论
下一页