多线程程序员面试真题及详细答案(实战接地气版).docxVIP

  • 1
  • 0
  • 约4.92千字
  • 约 7页
  • 2026-09-03 发布于河北
  • 举报

多线程程序员面试真题及详细答案(实战接地气版).docx

多线程程序员面试真题及详细答案(实战接地气版)

一、基础概念篇(入门必问)

1.进程和线程的区别?项目里你怎么理解?

参考答案:

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

一个进程里可以包含多个线程,多个线程共享进程的堆内存、方法区资源,但是每个线程有自己独立的栈内存、程序计数器、本地变量表。

从工程角度来说:进程之间完全隔离,互相不共享数据,通信成本极高;线程同属一个进程,数据共享方便、切换开销小,所以我们业务开发基本都是用多线程,不会多进程。

简单总结:进程独立占资源,线程共享资源;进程开销大、切换慢,线程开销小、切换快。

2.并行和并发有什么区别?

参考答案:

并发:多个任务交替执行,同一时刻只有一个任务在跑,CPU快速切换轮转,看起来像是同时执行,单核CPU只能实现并发。比如秒杀接口,大量请求轮流被处理。

并行:多个任务同一时刻真正同时执行,需要多核CPU支持。比如多核心同时跑多个计算任务。

通俗理解:并发是交替做,并行是一起做。日常开发中我们说的高并发,大部分是并发场景,不是并行。

3.线程的生命周期有哪些状态?分别什么时候触发?

参考答案:

Java线程一共6种状态,不是网上说的5种:

1.NEW(新建):newThread之后,还没调用start(),线程未启动。

2.RUNNABLE(就绪+运行):调用start()后进入就绪

文档评论(0)

1亿VIP精品文档

相关文档