- 1
- 0
- 约4.65千字
- 约 7页
- 2026-08-24 发布于河北
- 举报
Java线程高频面试题及详细答案(实战接地气版)
一、线程基础篇(初级必问)
1.说说线程和进程的区别?
这个问题是面试基础必考,我按工作中实际理解来说,不背概念:
进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位。
简单讲:一台服务器上跑的一个个程序就是进程,比如IDEA、Tomcat、MySQL,每个进程都是独立的,有自己独立的内存空间,进程之间互不干扰,创建和销毁成本极高。
而线程是进程里面的执行单元,一个进程可以包含多个线程。比如Tomcat进程里,会开很多线程去处理用户请求。同一个进程下的所有线程共享堆内存和方法区,只有栈内存是各自独立的,所以线程创建、切换、销毁的成本非常低。
核心区别总结:
资源:进程独立资源,线程共享进程资源
开销:进程开销大,线程轻量、开销小
隔离性:进程完全隔离,线程共享数据、存在线程安全问题
通信:进程间通信复杂,线程直接共享变量通信
2.Java中创建线程有几种方式?区别是什么?
日常面试和开发中,核心就四种,我按常用程度排序:
(1)继承Thread类
自定义类继承Thread,重写run()方法,调用start()启动线程。
缺点:单继承限制,不能再继承其他类,基本项目里很少用。
(2)实现Runnable接口
实现run()方法,传入Thread对象启动。无继承限制,灵活,业务开发最常用。
缺点:无返回值、不能抛异常。
原创力文档

文档评论(0)