java并发面试题

目录

一.线程基础

1.线程和进程的区别

2.并行和并发的区别

3.创建线程的方式

4.线程包括哪些状态,状态之间如何变化

5.如何保证线程间按顺序执行

6.notify()和notifyAll()的区别

7.java中wait和sleep方法的区别

8.如何停止正在运行的线程

二.线程安全

1.synchronized关键字的底层原理

2.锁升级

3.JMM(java内存模型)

4.CAS

5.volatile

6.AQS

7.ReentrantLock实现原理

8.synchronized和Lock区别

9.死锁产生的条件

10.ConcurrentHashMap

11.导致并发程序出现问题的根本原因

三.线程池

1.线程池核心参数

2.线程池执行原理

3.线程池中常见的阻塞队列

4.如何确定线程核心数量

5.线程池的种类

6.为什么不建议使用Executors创建线程池

四.多线程使用场景

1.项目中哪里用了多线程

2.如何控制某个方法允许并发访问线程的数量

五.ThreadLocal


一.线程基础

1.线程和进程的区别

2.并行和并发的区别

3.创建线程的方式

4.线程包括哪些状态,状态之间如何变化

5.如何保证线程间按顺序执行

6.notify()和notifyAll()的区别

7.java中wait和sleep方法的区别

8.如何停止正在运行的线程


二.线程安全

1.synchronized关键字的底层原理

2.锁升级

3.JMM(java内存模型)

4.CAS

5.volatile

6.AQS

7.ReentrantLock实现原理

8.synchronized和Lock区别

9.死锁产生的条件

10.ConcurrentHashMap

11.导致并发程序出现问题的根本原因


三.线程池

1.线程池核心参数

2.线程池执行原理

3.线程池中常见的阻塞队列

4.如何确定线程核心数量

5.线程池的种类

6.为什么不建议使用Executors创建线程池


四.多线程使用场景

1.项目中哪里用了多线程

2.如何控制某个方法允许并发访问线程的数量

五.ThreadLocal

相关推荐
重生之我在20年代敲代码36 分钟前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
爱上语文38 分钟前
Springboot的三层架构
java·开发语言·spring boot·后端·spring
serve the people42 分钟前
springboot 单独新建一个文件实时写数据,当文件大于100M时按照日期时间做文件名进行归档
java·spring boot·后端
qmx_072 小时前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
为风而战2 小时前
IIS+Ngnix+Tomcat 部署网站 用IIS实现反向代理
java·tomcat
编程零零七3 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
技术无疆4 小时前
快速开发与维护:探索 AndroidAnnotations
android·java·android studio·android-studio·androidx·代码注入
2401_858286114 小时前
52.【C语言】 字符函数和字符串函数(strcat函数)
c语言·开发语言
铁松溜达py4 小时前
编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
开发语言·网络
everyStudy4 小时前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript