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、为什么要用线程池

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

相关推荐
程序员黑豆1 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
风流 少年2 小时前
Spring AI 2.0:Memory
java·后端·spring
码匠许师傅2 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
2603_965148113 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
小席是个热心肠3 小时前
AI相关的自我学习
java·人工智能·学习
知无不研5 小时前
lambda表达式的使用(3)
开发语言·c++·lambda
数智化管理手记5 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
cfm_29146 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
鲸采云SRM采购管理系统7 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
C++ 老炮儿的技术栈7 小时前
基于Qt实现轻量化本地音乐播放器
开发语言·c++·qt·c·播放器·音乐