- 1
- 0
- 约4.4千字
- 约 6页
- 2026-08-25 发布于河北
- 举报
Java多线程高频面试真题(真实面试场景版)
整套题库适配初/中级开发面试,覆盖基础概念、锁机制、线程池、并发工具、经典问题,答案贴合面试官真实打分标准,无书面化套话。
一、基础概念高频题
1.说说进程和线程的区别?为什么多线程效率比多进程高?
进程是操作系统资源分配的最小单位,独立占有内存、CPU资源,进程之间完全隔离,切换开销极大;线程是CPU调度的最小单位,隶属于进程,共享进程的堆内存、方法区资源,仅私有栈内存。
多线程效率更高的核心原因:线程切换只需保存少量栈信息,无需重新分配内存资源,开销远小于进程;同时同一进程下的线程可以直接共享数据,无需复杂的进程间通信,交互效率更高。
2.线程的生命周期有哪些状态?各自的触发条件是什么?
Java线程共6种状态:
新建(NEW):创建线程对象后、未调用start()方法
运行(RUNNABLE):调用start()后,等待CPU调度或正在执行代码
阻塞(BLOCKED):等待获取synchronized内置锁,锁被其他线程占用时触发
终止(TERMINATED):线程代码执行完毕或异常终止
3.start()和run()方法的核心区别?能不能直接调用run()?
直接调用run()只是普通的对象方法调用,全程在当前主线程执行,不会创建新线程;start()是向操作系统发起申请,创建新线程并由JVM调度执行run()逻辑。
注
原创力文档

文档评论(0)