- 2
- 0
- 约4.76千字
- 约 7页
- 2026-07-27 发布于河北
- 举报
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)