Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

并发编程高级面试专题解析

问题一: Synchronized 用过吗, 其原理是什么?

问题二: 你刚才提到获取对象的锁, 这个“ 锁” 到底是什么? 如何确定对象的锁?

问题三: JVM 对 Java 的原生所做了哪些优化?

问题四: 为什么说 Synchronized 是非公平锁?

问题五: 什么是锁消除和锁粗化?

问题六: 为什么说Synchronized是一个悲观锁? 乐观锁的实现原理又是什么? 什么是 CAS

问题七: 乐观锁一定就是好的吗?

问题八: 跟Synchronized相比, 可重入锁Reentrant Lock其实现原理有什么不同

问题九: 那么请谈谈 AQS 框架是怎么回事儿?

问题十: 请尽可能详尽地对比下Synchronized和Reentrant Lock的异同。

问题十一: Reentrant Lock 是如何实现可重复性的?

问题十二: 请谈谈 Read Write Lock 和 Stamped Lock。

问题十三: 如何让Java的线程彼此同步? 你了解过哪些同步器? 请分别介绍下。

问题十四: Cyclic Barrier和Count Down Latch看起来很相似, 请对比

问题十五: Java 中的线程池是如何实现的?

问题十六: 创建线程池的几个核心构造参数?

问题十七: 线程池中的线程是怎么创建的? 是一开始就随着线程池的启动创建好的吗?

问题十八: 既然提到可以通过配置不同参数创建出不同的线程池, 那么Java 中默认实现好的线程池又有哪

问题十九: 什么是Java的内存模型, Java中各个线程是怎么彼此看到对方的变量的?

问题二十: 请谈谈 volatile 有什么特点, 为什么它能保证变量对所有线程的可见性?

问题二十一: 既然 volatile 能够保证线程间的变量可见性, 是不是就意味着基于volatile

问题二十二: 请对比下 volatile 对比 Synchronized 的异同。

问题二十三: 请谈谈 Thread Local 是怎么解决并发安全的?

问题二十四: 很多人都说要慎用 Thread Local, 谈谈你的理解, 使用Thread Local

Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

我相信大多数朋友们对于这几道面试题都是一脸懵圈,如果你平时只有CRUD的经验,也不了解并发编程,如果被面试官问道的话,基本上就是毫无还手之力了,那offer肯定就不是你的了!更不用提涨薪了!

Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题


那么在实际的业务项目中,并发编程该从何做起来的,一篇文章也很难讲清楚,我这边之前收集整理了一份并发编程系统学习文档。由于文章比较多,头条限制了字数,所以我整理了个目录贴(传送门),方便查阅。非常适合在学习并发的朋友观看!

这份文档主要分为4大PDF:

由于文档的内容太多,无法全部展示文字,在这做成了文档形式,有需要的朋友麻烦转发+关注,私信【并发】即可获取资料免费领取方式!

  1. 并发编程高级PDF
  2. 并发编程之原理
  3. 并发编程之模式
  4. 并发编程之应用

一起来看看目录:

Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

第一份 并发编程高级PDF

  • 进程与线程
  • Java线程
  • 共享模型之管程
  • 共享模型之内存
  • 共享模型之无锁
  • 共享模型之不可变
  • 共享模型之工具
Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

进程与线程


Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

Java线程


Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

共享模型之管程


Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

共享模型之内存


Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

共享模型之无锁

Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

共享模型之不可变

Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

共享模型之工具

第二份 并发编程之原理篇

  • 指令级并行原理
  • CPU缓存结构原理
  • volatile原理
  • final原理
  • Monitor原理
  • synchronized原理
  • synchronized原理进阶
  • wait notify原理
  • join原理
  • park unpark原理
  • AQS原理
  • ReentrantLock原理
  • 读写锁原理
  • Semaphore原理
  • ConcurrentHashMap原理
  • LinkedBlockingQueue原理
  • ConcurrentLinkedQueue原理
Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题

第三份 并发编程之模式篇

  • 同步模式之保护性暂停
  • 同步模式之Balking
  • 同步模式之顺序控制
  • 异步模式之生产者/消费者
  • 异步模式之工作线程
  • 终止模式之两阶段终止模式
  • 线程安全单例
  • 享元模式
Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题


第四份 并发编程之应用篇:

  • 效率
  • 限制
  • 互斥
  • 同步和异步
  • 缓存
  • 分治
  • 统筹
Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题


并发编程思维导图:

Java加分项之并发编程:进程+线程+锁+同步+异步+缓存+分治+面试题


由于文档的内容太多,无法全部展示文字,在这做成了文档形式,有需要的朋友麻烦转发后,私信【并发】即可获取资料免费领取方式!


分享到:


相關文章: