Java高并发高频面试题(真实面试版+详细答案).docxVIP

  • 2
  • 0
  • 约5.9千字
  • 约 9页
  • 2026-06-08 发布于河北
  • 举报

Java高并发高频面试题(真实面试版+详细答案).docx

Java高并发高频面试题(真实面试版+详细答案)

一、Java并发基础核心面试题

1.讲讲进程和线程的区别?为什么要用多线程?

参考答案:

进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位。一个进程里可以包含多个线程,线程共享进程的堆内存和方法区,每个线程有自己独立的栈内存和程序计数器。

核心区别:

1.开销:进程创建、销毁开销大,线程轻量、开销小;

2.资源隔离:进程之间完全隔离,线程共享进程资源;

3.通信:进程间通信复杂,线程间直接共享变量即可通信。

使用多线程的原因:充分利用CPU多核资源,提升程序吞吐量;解决阻塞等待问题(比如IO等待时释放CPU),不用单线程串行卡死流程。

2.线程的生命周期有哪些状态?日常开发最常用的是哪几个?

参考答案:

Java线程一共6种状态(Thread.State枚举):

1.NEW:新建线程,还没调用start();

2.RUNNABLE:可运行状态,包含正在执行和等待CPU时间片两种情况;

3.BLOCKED:阻塞,等待获取synchronized锁;

6.TERMINATED:线程执行完毕终止。

3.wait、sleep、yield的核心区别?(必问)

参考答案:

1.sleep:Thread静态方法,持有锁也不会释放,限时阻塞,只让出CPU时间片,不释放锁资源,只能被时间唤醒;

2.wait:O

文档评论(0)

1亿VIP精品文档

相关文档