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

  • 0
  • 0
  • 约5.14千字
  • 约 7页
  • 2026-09-20 发布于河北
  • 举报

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

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

一、基础概念类

1.线程和进程的区别?

答案:

1)进程:操作系统资源分配的最小单位,独立占用内存、CPU资源,进程之间相互隔离,通信成本极高。一个进程崩溃不会影响其他进程。

2)线程:CPU调度的最小单位,隶属于进程,共享进程的堆内存、方法区资源,仅私有栈内存。线程间通信简单、切换成本低。一个线程异常崩溃,大概率导致整个进程退出。

3)关系:一个进程至少包含一个主线程,多线程是进程内的任务并行执行方式,目的是充分利用CPU资源,提升程序执行效率。

2.并行和并发的区别?

答案:

并发:同一时间段内,多个任务交替执行,单核CPU也能实现,本质是“快速交替,看似同时”。比如秒杀系统海量请求交替处理。

并行:同一时刻,多个任务真正同时执行,必须依赖多核CPU。比如多核心同时处理多个独立任务。

简单总结:并发是“交替执行”,并行是“同时执行”,并行一定是并发,并发不一定是并行。

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

答案:主流四种,面试重点区分优劣

1)继承Thread类:重写run()方法,直接调用start()启动。缺点是单继承限制,无法再继承其他类,灵活性差。

2)实现Runnable接口:重写run()方法,传入Thread启动。无继承限制,适合资源共享,是最基础、常用的方式。

3)实现Callable接口:重写call()

文档评论(0)

1亿VIP精品文档

相关文档