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

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

相关推荐
RainCity4 小时前
Java Swing 自定义组件库分享(十三)
java·笔记·后端
C+-C资深大佬5 小时前
python while循环
服务器·开发语言·python
Tian_Hang5 小时前
eclipse ditto 学习笔记
运维·服务器·开发语言·javascript·3d
星夜夏空995 小时前
C++学习(2) —— 类与对象基础
开发语言·c++·学习
livemetee5 小时前
【关于Spring声明式事务】
java·后端·spring
倒流时光三十年5 小时前
Java 内存模型(JMM)通俗解释
java·开发语言
码兄科技6 小时前
Java AI智能体开发实战:从零构建企业级智能应用指南
java·开发语言·人工智能
2401_859506246 小时前
AIGC赋能大漆摆件设计:从痛点分析到技术架构与实战验证
java·大数据·人工智能
剑挑星河月6 小时前
54.螺旋矩阵
java·算法·leetcode·矩阵
zh路西法6 小时前
【现代控制理论与卡尔曼滤波】从状态空间到Python仿真实现
开发语言·python