Java多线程高频面试真题(真实面试场景版).docxVIP

  • 1
  • 0
  • 约4.4千字
  • 约 6页
  • 2026-08-25 发布于河北
  • 举报

Java多线程高频面试真题(真实面试场景版).docx

Java多线程高频面试真题(真实面试场景版)

整套题库适配初/中级开发面试,覆盖基础概念、锁机制、线程池、并发工具、经典问题,答案贴合面试官真实打分标准,无书面化套话。

一、基础概念高频题

1.说说进程和线程的区别?为什么多线程效率比多进程高?

进程是操作系统资源分配的最小单位,独立占有内存、CPU资源,进程之间完全隔离,切换开销极大;线程是CPU调度的最小单位,隶属于进程,共享进程的堆内存、方法区资源,仅私有栈内存。

多线程效率更高的核心原因:线程切换只需保存少量栈信息,无需重新分配内存资源,开销远小于进程;同时同一进程下的线程可以直接共享数据,无需复杂的进程间通信,交互效率更高。

2.线程的生命周期有哪些状态?各自的触发条件是什么?

Java线程共6种状态:

新建(NEW):创建线程对象后、未调用start()方法

运行(RUNNABLE):调用start()后,等待CPU调度或正在执行代码

阻塞(BLOCKED):等待获取synchronized内置锁,锁被其他线程占用时触发

终止(TERMINATED):线程代码执行完毕或异常终止

3.start()和run()方法的核心区别?能不能直接调用run()?

直接调用run()只是普通的对象方法调用,全程在当前主线程执行,不会创建新线程;start()是向操作系统发起申请,创建新线程并由JVM调度执行run()逻辑。

文档评论(0)

1亿VIP精品文档

相关文档