Java多线程高频面试题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约4.32千字
  • 约 7页
  • 2026-07-27 发布于河北
  • 举报

Java多线程高频面试题及详细答案(实战版).docx

Java多线程高频面试题及详细答案(实战版)

一、基础概念篇(初级必问)

1.进程和线程的区别?

答案:

进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位。

1.资源隔离:进程之间完全独立,互不共享资源;同一个进程内的线程共享堆、方法区资源,只独有栈、程序计数器。

2.开销:进程创建、销毁、切换开销极大;线程开销很小,所以线程也叫轻量级进程。

3.通信方式:进程间通信复杂(管道、socket、共享内存);线程直接共享变量即可通信。

4.独立性:一个进程崩溃不影响其他进程;一个线程异常崩溃,整个进程直接退出。

2.并发和并行的区别?

答案:

并行是同一时刻多个任务同时执行,需要多核CPU支持。

并发是同一时间段多个任务交替执行,单核CPU通过时间片切换实现,看似同时,实际是快速交替。

简单说:并行是真同时,并发是假同时、快速切换。Java多线程大多是并发,多核下会出现并行。

3.Java线程的生命周期有哪些状态?

答案:

JDK源码定义了6种线程状态,日常面试重点记这6种:

1.NEW:新建线程,还没调用start()

2.RUNNABLE:可运行状态,包含正在运行和等待CPU时间片两种情况

3.BLOCKED:阻塞,等待获取synchronized锁

6.TERMINATED:线程执行完毕,彻底结束

4.start()和run()的区别?

答案

文档评论(0)

1亿VIP精品文档

相关文档