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

相关推荐
前路不黑暗@8 分钟前
C语言:操作符详解(二)
c语言·开发语言·经验分享·笔记·学习·学习方法·visual studio
柳贯一(逆流河版)12 分钟前
Spring 三级缓存:破解循环依赖的底层密码
java·spring·缓存·bean的循环依赖
深盾科技1 小时前
Kotlin Data Classes 快速上手
android·开发语言·kotlin
zzywxc7871 小时前
详细探讨AI在金融、医疗、教育和制造业四大领域的具体落地案例,并通过代码、流程图、Prompt示例和图表等方式展示这些应用的实际效果。
开发语言·javascript·人工智能·深度学习·金融·prompt·流程图
浮灯Foden1 小时前
算法-每日一题(DAY13)两数之和
开发语言·数据结构·c++·算法·leetcode·面试·散列表
淡海水2 小时前
【原理】Struct 和 Class 辨析
开发语言·c++·c#·struct·class
Q_Q19632884752 小时前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
该用户已不存在2 小时前
OpenJDK、Temurin、GraalVM...到底该装哪个?
java·后端
杜子不疼.2 小时前
《Python学习之第三方库:开启无限可能》
开发语言·python·学习
TT哇2 小时前
@[TOC](计算机是如何⼯作的) JavaEE==网站开发
java·redis·java-ee