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

相关推荐
poggioxay1 分钟前
JAVA零基础入门知识3(持续更新中)
java·开发语言·python
鹤归时起雾.5 分钟前
Vue3响应式编程核心指南
开发语言·vue3
清晓粼溪13 分钟前
SpringMVC-01:基础知识
java·spring
郝学胜-神的一滴24 分钟前
Linux信号四要素详解:从理论到实践
linux·服务器·开发语言·网络·c++·程序人生
yangpipi-24 分钟前
《C++并发编程实战》 第3章 在线程间共享数据
开发语言·c++
fish_xk25 分钟前
c++基础
开发语言·c++
MoonBit月兔26 分钟前
审美积累 | MoonBit LOGO 投稿作品速递
开发语言·编程·moonbit
互亿无线明明34 分钟前
如何为全球业务构建可扩展的“群发国际短信接口”?
java·c++·python·golang·eclipse·php·erlang
写完代码就回家结婚1 小时前
Java函数式编程:用Stream API重构你的代码逻辑
java
缘三水1 小时前
【C语言】12.指针(2)
c语言·开发语言·指针