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

  • 1
  • 0
  • 约5.09千字
  • 约 8页
  • 2026-08-24 发布于河北
  • 举报

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

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

一、多线程基础篇

1.进程和线程的区别?

参考答案:

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

核心区别:

资源占用:进程独立占有内存、CPU等系统资源,开销大;线程共享所在进程的资源,开销极小

独立性:进程之间完全隔离,一个进程崩溃不影响其他进程;线程共享进程资源,单个线程异常崩溃,会导致整个进程终止

通信方式:进程间通信复杂,需要管道、socket、共享内存等机制;线程间可直接共享变量、内存,通信简单

切换成本:进程上下文切换成本极高;线程切换只需要保存少量栈信息,成本很低

简单总结:一个程序至少有一个进程,一个进程至少有一个线程,线程依附于进程存在。

2.Java实现多线程的几种方式?

参考答案:

日常开发和面试核心认可4种主流方式,避免网上冗余说法:

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

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

实现Callable接口:重写call()方法,有返回值、可抛异常,需要配合FutureTask、线程池使用,适合有结果返回的异步任务

线程池创建线程:通过Executors或ThreadPoolExecutor创建,统一管理线程,避免频繁创建销

最近下载

文档评论(0)

1亿VIP精品文档

相关文档