多线程高并发核心面试题及详细答案(实战向).docxVIP

  • 3
  • 0
  • 约6.33千字
  • 约 9页
  • 2026-09-03 发布于河北
  • 举报

多线程高并发核心面试题及详细答案(实战向).docx

多线程高并发核心面试题及详细答案(实战向)

一、多线程基础核心面试题

1、线程和进程的区别?为什么高并发场景推荐用多线程而不是多进程?

参考答案:

进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位。一个进程内可以包含多个线程,线程共享进程的堆内存、方法区资源,每个线程有自己独立的栈内存和程序计数器。

核心区别有三点:

1)资源开销:进程创建、销毁、切换开销极大,需要重新分配系统资源;线程开销极小,仅需维护线程栈和寄存器上下文。

2)通信方式:进程间通信复杂,需要管道、socket、共享内存等;线程直接共享进程内存,通信简单。

3)隔离性:进程完全隔离,一个进程崩溃不影响其他进程;线程共享资源,一个线程异常大概率导致整个进程宕机。

高并发选多线程的核心原因:开销低、响应快、资源利用率高。单机高并发场景下,多进程会被系统资源开销限制吞吐量,多线程可以用极小的上下文切换成本支撑大量并发请求。

2、线程的五种状态及流转过程?

参考答案:

Java线程核心五种状态:新建、就绪、运行、阻塞、终止。

1)新建(NEW):线程对象创建完成,未调用start(),无操作系统线程映射。

2)就绪(RUNNABLE):调用start()后,等待CPU调度,随时可以执行。

3)运行(RUNNING):CPU分配时间片,线程正在执行代码逻辑。

5)终止(TERMINATED):代码执行完毕或异

文档评论(0)

1亿VIP精品文档

相关文档