JDK8 多线程高频面试题及详细答案(实战干货版).docxVIP

  • 2
  • 0
  • 约4.76千字
  • 约 7页
  • 2026-07-27 发布于河北
  • 举报

JDK8 多线程高频面试题及详细答案(实战干货版).docx

JDK8多线程高频面试题及详细答案(实战干货版)

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

1、线程和进程的区别?

答案:

1)进程:操作系统资源分配的最小单位,独立占有内存、CPU资源,进程之间完全隔离,切换开销极大。

2)线程:进程内的执行单元,CPU调度的最小单位,共享进程的堆内存、方法区资源,仅私有栈内存,切换开销小。

3)一个进程至少包含一个主线程,线程不能独立存在,必须依附进程。

4)进程崩溃不影响其他进程,一个线程异常未捕获,大概率导致整个进程退出。

2、Java实现多线程的几种方式?(JDK8标准说法)

答案:日常开发+面试统一答四种,摒弃老旧错误说法

1)继承Thread类,重写run()方法;缺点:单继承限制,无法复用。

2)实现Runnable接口,重写run()方法;无返回值、无异常抛出,最常用。

3)实现Callable接口+FutureTask;支持返回值、抛出异常,JDK5新增。

4)线程池创建线程(Executor框架);生产环境唯一推荐方式,可复用线程、控制并发数。

补充:JDK8Lambda可以简化Runnable/Callable写法,但不属于新的实现方式。

3、run()和start()区别?

答案:

1)start():真正开启新线程,由JVM调用native方法,进入就绪状态,等待CPU调度,只能

文档评论(0)

1亿VIP精品文档

相关文档