01 并发宝典:面试专题

面试专题分为四个部分,分别如下

  • Synchronized 相关问题

  • 可重入锁 ReentrantLock 及其他显式锁相关问题

  • Java 线程池相关问题

  • Java 内存模型相关问题

1.1 Synchronized 相关问题(这里整理了八问)

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

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

  • 问题 三:什么是可重入性 , 为什么说Synchronized是可重入锁?

  • 问题四:JVM对Java的原生锁做了哪些优化?

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

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

  • 问题七:为什么说Synchronized是一个悲观锁?乐观锁的实现原理又是什么?什么是CAS,它有 什么特性?

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

1.2 可重入锁 ReentrantLock 及其他显式锁相关问题(八问)

  • 问题一: 跟 Synchronized 相 比 ,可重入锁ReentrantLock其实现原理有什么不同?

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

  • 问题三:请尽可能详尽地对比下Synchronized 和 ReentrantLock的 异 同

  • 问题四: ReentrantLock 是如何实现可重入性的?

  • 问题五: 除了ReetrantLock,你还接触过JUC中的哪些并发工具?

  • 问题六: 请谈谈ReadWriteLock 和 StampedLock。

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

  • 问题八: CyclicBarrier 和 CountDownLatch 看起来很相似,请对比下呢?

1.3 Java 线程池相关问题(六问)

  • 问题一:Java中的线程池是如何实现的?

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

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

  • 问题四:既然提到可以通过配置不同参数创建出不同的线程池,那么Java中默认实现好的线程池又 有哪些呢?请比较它们的异同 。

  • 问题六:如何在Java线程池中提交线程?

1.4 Java 内存模型相关问题(六问)

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

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

  • 问题三:既然volatile能够保证线程间的变量可见性,是不是就意味着基于volatile变量的运算就是并 发安全的 ?

  • 问题四:请对比下volatile对比Synchronized的异同

  • 问题六:很多人都说要慎用ThreadLocal,谈谈你的理解,使用ThreadLocal需要注意些什么?

02 并发宝典:体系大纲专题

  • Java并发体系

  • 多线程并发编程大纲

体系大纲是个人对知识的总结梳理,全程用的xmind手绘,不过文件不能上传,所以这里都是上传的图片形式,不过有原件

2.1 Java并发体系

2.2 多线程并发编程

03 并发宝典:笔记专题

3.1 手写四份并发笔记:并发编程+原理+模式+应用

3.1.1 并发编程

  • 1.概览

  • ⒉进程与线程

  • 3.Java线程

  • 4.共享模型之管程

  • 5.共享模型之内存

  • 6.共享模型之无锁

  • 7.共享模型之不可变

  • 8.共享模型之工具

3.1.2 原理篇

  • 指令级并行原理

  • CPU缓存结构原理

  • volatile l原理

  • final 原理

  • Monitor 原理

  • synchronized 原理

  • synchronized 原理进阶

  • wait notify l原理

  • join 原理

  • park unpark 原理

  • AQS 原理

  • ReentrantLock 原理

  • 读写锁原理

  • Semaphore 原理

  • ConcurrentHashMap 原理

  • LinkedBlockingQueue 原理

  • ConcurrentLinkedQueue 原理

3.1.3 模式篇

  • 同步模式之保护性暂停

  • 同步模式之Balking

  • 同步模式之顺序控制

  • 异步模式之生产者/消费者

  • 异步模式之工作线程

  • 终止模式之两阶段终止模式

  • 线程安全单例

  • 享元模式

3.1.4 应用篇

  • 效率

  • 限制

  • 互斥

  • 同步和异步

  • 缓存

  • 分治统筹

  • 定时

面试准备+复习资料分享:

为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦,有需要的可以来找我获取哈

获取方式:点击蓝色字体即可免费获取

39199982)]

面试准备+复习资料分享:

为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦,有需要的可以来找我获取哈

获取方式:点击蓝色字体即可免费获取

[外链图片转存中…(img-XZ6ITbMl-1625939199982)]

java线程池队列场景,Java面试题汇总相关推荐

  1. 一文详解java线程池 详解Java线程池的七个参数 详解池化技术 java如何选择核心线程数 详解Java线程池的拒绝策略

    目录 引言 线程池使用场景 加快请求响应(响应时间优先) 加快处理大任务(吞吐量优先) 特殊说明 线程池的池化技术 线程池的创建 手动创建 创建newFixedThreadPool线程池 创建newS ...

  2. java 线程池 复用机制,java的线程池框架及线程池的原理

    java 线程池详解 什么是线程池? 提供一组线程资源用来复用线程资源的一个池子 为什么要用线程池? 线程的资源是有限的,当处理一组业务的时候,我们需要不断的创建和销毁线程,大多数情况下,我们需要反复 ...

  3. java线程池队列大小_GitHub - sunshanpeng/dark_magic: 合理估算线程池大小及队列数

    合理估算java的线程池大小及队列数 原理分析 先来一个天真的估算方法:假设要求一个系统的TPS(Transaction Per Second或者Task Per Second)至少为20,然后假设每 ...

  4. java线程池游戏代码,Java游戏起步:(一)线程与线程池-JSP教程,Java技巧及代码...

    任何游戏都至少需要运行两个线程,主线程和gui线程 而线程池是一个管理运行线程的有用工具,下面的代码示范了一个线程池的实现方法~~ ********************************** ...

  5. java 线程池 初始大小,Java线程池ThreadPoolExecutor的实现和参数

    接文章Java8线程池--底层为LinkedBlockingQueue的ThreadPoolExecutor,文章中简单介绍了线程池保持线程,并且从阻塞队列中获取任务执行的流程.本篇文章详细介绍线程池 ...

  6. java线程池应用场景面试,含小米、腾讯、阿里

    前言 本系列的目的是明明白白.彻彻底底的搞定日期/时间处理的几乎所有case.上篇文章铺设所有涉及到的概念解释,例如GMT.UTC.夏令时.时间戳等等,若你还没看过,不仅强烈建议而是强制建议你前往用花 ...

  7. 自定义java线程池_我的Java自定义线程池执行器

    自定义java线程池 ThreadPoolExecutor是Java并发api添加的一项功能,可以有效地维护和重用线程,因此我们的程序不必担心创建和销毁线程,也不必关注核心功能. 我创建了一个自定义线 ...

  8. java 线程池 简介

    线程的实现方式 java 多线程之 extends Thread java 多线程之 implements Runnable java 多线程之 implements Callable 线程池的使用 ...

  9. java线程池_Java多线程并发:线程基本方法+线程池原理+阻塞队列原理技术分享...

    线程基本方法有哪些? 线程相关的基本方法有 wait,notify,notifyAll,sleep,join,yield 等. 线程等待(wait) 调用该方法的线程进入 WAITING 状态,只有等 ...

最新文章

  1. PHP代理模式Proxy Mode
  2. url加密解密的一个cs类
  3. initrd.img相关
  4. Xamarin效果第十七篇之AR GIS
  5. ik分词器 mysql php_php环境下使用elasticSearch+ik分词器进行全文搜索
  6. 知乎高赞:一行代码凭什么躺普通程序员的10年工资?
  7. 遍历 in java_[Java教程]JavaScript中遍历数组 最好不要使用 for in 遍历
  8. selenium windows 下面环境搭建(安装JDK)
  9. linux mysql 不区分大小写,Linux下设置MySQL不区分大小写_MySQL
  10. 在Flex组件外观实施中使用Scale9
  11. 项目拉去某个版本的_项目管理的“背后军师”——高层领导
  12. cudaMallocHost(void **,size_t)”: 无法将参数 1 从“float **”转换为“void **”
  13. 用计算机读取机读卡信息,摄像机SD卡无法读取怎么办
  14. 重启 WMI 服务。
  15. 团队管理经典书籍推荐:《团队管理必读12篇》
  16. 19-Python基础知识学习-----迭代器与生成器
  17. 现在的SQLSERVER数据库监控软件有哪些?
  18. JS生成 UUID的四种方法
  19. vue简单实现吸顶效果pc
  20. 百度经验的文章,如何自动展开“展开阅读全部”

热门文章

  1. 使用phpqrcode生成二维码时候显示不正常,有一个小方块
  2. 欢乐拼图发红包微信小程序开发过程实录成品展示
  3. “sockaddr_in”:“struct”类型重定义
  4. jcenter下载慢
  5. 未将对象引用设置到对象的实例
  6. Python实现多进程的4种方式
  7. 机器学习系列之EM算法
  8. matlab数字转字符
  9. opencv图像处理常用函数
  10. 5.Python基础语法(函数/条件控制/循环语句/可迭代对象/迭代器/生成器/对象赋值/浅复制/深复制)