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

  • 1
  • 0
  • 约4.65千字
  • 约 7页
  • 2026-08-24 发布于河北
  • 举报

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

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

一、线程基础篇(初级必问)

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

这个问题是面试基础必考,我按工作中实际理解来说,不背概念:

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

简单讲:一台服务器上跑的一个个程序就是进程,比如IDEA、Tomcat、MySQL,每个进程都是独立的,有自己独立的内存空间,进程之间互不干扰,创建和销毁成本极高。

而线程是进程里面的执行单元,一个进程可以包含多个线程。比如Tomcat进程里,会开很多线程去处理用户请求。同一个进程下的所有线程共享堆内存和方法区,只有栈内存是各自独立的,所以线程创建、切换、销毁的成本非常低。

核心区别总结:

资源:进程独立资源,线程共享进程资源

开销:进程开销大,线程轻量、开销小

隔离性:进程完全隔离,线程共享数据、存在线程安全问题

通信:进程间通信复杂,线程直接共享变量通信

2.Java中创建线程有几种方式?区别是什么?

日常面试和开发中,核心就四种,我按常用程度排序:

(1)继承Thread类

自定义类继承Thread,重写run()方法,调用start()启动线程。

缺点:单继承限制,不能再继承其他类,基本项目里很少用。

(2)实现Runnable接口

实现run()方法,传入Thread对象启动。无继承限制,灵活,业务开发最常用。

缺点:无返回值、不能抛异常。

文档评论(0)

1亿VIP精品文档

相关文档