- 2
- 0
- 约6.94千字
- 约 12页
- 2026-05-17 发布于四川
- 举报
2025年高频java多线程并发面试题及答案
线程与进程的本质区别是什么?进程是操作系统资源分配的基本单位,线程是CPU调度的基本单位。一个进程可包含多个线程,共享进程的堆和方法区资源,但每个线程有独立的程序计数器、虚拟机栈和本地方法栈。进程间通信需通过IPC(管道、消息队列、套接字等),线程间通信更轻量,可直接访问共享变量。
调用start()和直接调用run()方法的区别是什么?start()方法属于Thread类,会启动新线程并调用run()方法,遵循JVM的线程调度机制。直接调用run()方法等同于在当前线程执行普通方法调用,不会创建新线程。例如,执行newThread(()-{}).start()会创建新线程并异步执行任务,而直接调用run()则在主线程同步执行。
线程的生命周期包含哪些状态?Java中线程状态由Thread.State枚举定义,共6种:NEW(新建,未调用start())、RUNNABLE(可运行,包括操作系统的运行中或就绪状态)、BLOCKED(阻塞,等待监视器锁)、WAITING(无限等待,需其他线程唤醒)、TIMED_WAITING(超时等待,指定时间后自动唤醒)、TERMINATED(终止,执行完毕或异常退出)。状态转换典型路径:NEW→RUNNABLE(start())→BLOCKED(获取synchronized锁失败)→RUNNABLE(
您可能关注的文档
- (2025年)(新)劳务作业人员普法维权培训考试试卷答案.docx
- (2025年)6岁儿童学习与发展指南》健康领域测试题(答案).docx
- (2025年)cad上机期末考试试题及答案.docx
- (2025年)安康市汉滨区网格员考试练习题(附答案).docx
- (2025年)安全考试试题及答案(范文).docx
- (2025年)安阳市文峰区招聘警务辅助人员考试真题及答案.docx
- (2025年)本溪市明山区辅警考试题《公安基础知识》综合能力试题库附答案.docx
- (2025年)材料成型技术基础考试试题答案.docx
- (2025年)常州市武进区网格职员考试题及答案.docx
- (2025年)成都市温江区网格员考试试题及答案.docx
原创力文档

文档评论(0)