Java线程高频面试题合集(真实面试向+详细答案).docxVIP

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

Java线程高频面试题合集(真实面试向+详细答案).docx

Java线程高频面试题合集(真实面试向+详细答案)

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

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

答案:

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

1.资源占用:进程独立占有内存、堆、文件句柄等资源,开销大;线程共享所在进程的堆、方法区资源,仅私有栈、程序计数器,开销极小。

2.独立性:进程之间完全隔离,一个进程崩溃不影响其他进程;线程共享进程资源,一个线程异常崩溃,整个进程大概率直接挂掉。

3.通信方式:进程通信复杂,需要管道、socket、共享内存等;线程通信简单,直接读写共享变量即可。

4.切换成本:进程切换需要切换页表、刷新缓存,成本高;线程切换只需保存少量栈信息,成本极低。

简单总结:进程是资源容器,线程是执行单元。

2.Java中创建线程有几种方式?

答案:日常开发核心就4种,面试不用罗列冷门方式,贴合实际开发即可:

1.继承Thread类:重写run()方法,调用start()启动线程。缺点是单继承限制,无法再继承其他类。

2.实现Runnable接口:重写run()方法,传入Thread对象启动。无继承限制,最常用,无返回值。

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

4.线程池创建:通过Executors、

文档评论(0)

1亿VIP精品文档

相关文档