多线程高频面试题及真实口语化答案.docxVIP

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

多线程高频面试题及真实口语化答案.docx

多线程高频面试题及真实口语化答案

一、多线程基础概念(入门必问)

1、进程和线程的区别?

简单说,进程是资源分配的最小单位,线程是CPU调度的最小单位。

进程相互独立,每个进程有独立的内存空间,一个进程挂了不影响其他进程;线程共享所在进程的堆内存和方法区,栈内存独立,一个线程异常挂掉,大概率会导致整个进程崩溃。

另外,进程创建、销毁开销很大,线程开销很小,所以多线程并发效率远高于多进程。

2、为什么要用多线程?多线程的优缺点?

使用场景:主要是为了充分利用CPU多核资源,提升程序执行效率,处理耗时任务(IO、批量处理、接口调用),避免单线程阻塞卡死。

优点:CPU利用率高、任务处理速度快、可以异步处理耗时操作、提升系统吞吐量。

缺点:线程越多内存占用越高;会有线程安全问题;线程切换有上下文开销;线程过多会导致CPU频繁切换,反而变慢;排查问题难度变大。

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

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

新建(NEW):newThread之后,没调用start;

就绪(RUNNABLE):调用start,等待CPU调度;

运行(RUNNING):抢到CPU时间片,正在执行;

阻塞(BLOCKED):等待获取锁资源;

终止(TERMINATED):线程执行完毕或异常退出。

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

run()只是一个普通方法调用,不会开启新

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档