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

  • 0
  • 0
  • 约6.65千字
  • 约 8页
  • 2026-09-03 发布于河北
  • 举报

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

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

一、基础概念篇(入门高频)

1.说说线程和进程的区别?

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

核心区别有四点:

第一,资源占用不同。进程拥有独立的内存空间、堆、文件句柄等系统资源,一个进程崩溃不会影响其他进程;线程共享所在进程的堆、全局变量等资源,单个线程异常崩溃,会导致整个进程终止。

第二,开销不同。创建、销毁进程的开销极大,需要操作系统重新分配资源;线程开销非常小,仅需分配少量栈内存和程序计数器。

第三,通信方式不同。进程间通信复杂,需要管道、socket、共享内存等专门机制;线程间直接共享进程资源,通信简单,直接读写共享变量即可。

第四,执行粒度不同。一个进程包含多个线程,进程是程序运行的整体载体,线程是程序具体执行的分支。

2.什么是多线程?为什么要用多线程?有什么弊端?

多线程就是在一个进程内,同时开启多个执行分支,并行完成多项任务。

使用场景和优势:一是充分利用CPU多核资源,避免单核CPU闲置,提升程序运行效率;二是阻塞场景优化,比如IO等待、网络请求时,释放CPU去执行其他任务,不会空等;三是拆分复杂任务,将耗时任务异步执行,提升程序响应速度,比如后端接口快速响应前端。

弊端也很明显:第一,线程会占用栈内存,大量线程会导致内存占用过高;第二,线程切换存在上下文切换开销,线程过多反而会降低效率;第三

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档