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

  • 1
  • 0
  • 约5.18千字
  • 约 8页
  • 2026-10-13 发布于河北
  • 举报

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

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

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

1.什么是线程?线程和进程的区别是什么?

答案:

进程是操作系统资源分配的最小单位,独立占用内存、CPU等系统资源,进程之间完全隔离,开销极大。

线程是进程内的执行单元,是CPU调度的最小单位,一个进程包含多个线程,线程共享进程的堆内存、方法区资源,仅拥有独立的栈内存、程序计数器、本地变量表。

核心区别:

资源开销:进程开销大,线程开销极小

隔离性:进程相互独立,线程共享进程资源、相互干扰

通信方式:进程通信复杂(管道、socket),线程可直接共享变量通信

稳定性:一个进程崩溃不影响其他进程;一个线程异常崩溃,整个进程直接退出

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

答案:日常开发+面试核心分为4种,不区分老旧无关写法:

继承Thread类:重写run()方法,直接调用start()启动。缺点是单继承限制,无法继承其他类,适合简单场景。

实现Runnable接口:重写run()方法,传入Thread对象启动。无继承限制,可多线程共享任务,是最常用的基础写法。

实现Callable接口:重写call()方法,支持返回值、抛出异常,需要配合FutureTask使用。适合需要获取线程执行结果的场景。

线程池创建线程:通过Executors、ThreadPoolExecutor创建,统一管理线程,避

文档评论(0)

1亿VIP精品文档

相关文档