java后端面试题(多线程极简)

目录

1、进程和线程的区别

进程是独立的程序运行单位,占用独立内存,互不干扰;线程是进程中的执行单元,共享进程资源,开销更小、更轻量。

2、并发与并行的区别

并发是多个任务交替执行,看似同时;并行是多个任务真正同一时刻同时执行。

3、Java创建线程的常用方式

两种基础常用方式:继承Thread类、实现Runnable接口。工作中优先用线程池创建线程。

4、run()和start()方法区别

start():真正开启新线程,只能调用一次;run()是普通业务方法,直接调用不会开启新线程。

5、wait和sleep的核心区别

wait会释放锁资源,需要被唤醒;sleep不会释放锁,时间到自动执行。

6、Java线程有几种状态

常用六种状态:新建、可运行、阻塞、等待、限时等待、终止。

7、volatile关键字的作用

保证多线程之间变量数据实时可见,不保证操作原子性,用于解决简单的数据可见问题。

8、synchronized关键字的作用

基础同步锁,修饰方法或代码块,保证多线程下代码安全,防止数据错乱。

9、什么是死锁,产生原因是什么

两个及以上线程互相持有对方需要的锁,互相等待、程序卡死。多为锁使用顺序混乱导致。

10、为什么要用线程池

避免频繁创建、销毁线程造成资源浪费,统一管理线程,提高程序运行效率。

相关推荐
学逆向的3 分钟前
扩展PE头属性说明
开发语言·网络安全·pe
不会就选b4 分钟前
Linux之socket编程(七)----序列化与反序列化(1)
java·linux·服务器
秋名RG7 分钟前
Java 工程师学习路线
java·学习方法
秋名RG11 分钟前
Java 基础语法
java·开发语言
java1234_小锋14 分钟前
MyBatis-Plus 3.5.15 已全面支持 Spring Boot 4.0 及 Jackson 3.0
java·spring boot·mybatis
码行山野赴时序归途15 分钟前
C 语言文件操作完全指南:从打开到关闭
c语言·开发语言
2501_9378609422 分钟前
Java 文件操作与IO(下):字节流、字符流实战IO读写
java·开发语言·python
xixingzhe224 分钟前
spring boot项目接口访问慢问题解决方案
java·数据库·spring boot
MetaLite26 分钟前
SpringBoot整合FastJson2数据脱敏-接口日志与失败降级
java·spring boot·后端
事圆则缓28 分钟前
Kotlin 高阶工程化与 Android 深入实践
android·开发语言·kotlin