当前位置: 首页 > news >正文

Java面试之Java多线程常见面试题

1、什么是线程?

定义:线程是程序中的执行路径,是操作系统进行调度的基本单位。它允许程序并发执行多个任务,提高程序的响应速度和资源利用率。

2、为什么需要线程?

1、提高并发性:线程允许程序同时执行多个任务,充分利用CPU资源。

2、提高响应速度:多线程可以处理用户输入、绘制图形、播放音乐等任务,使得程序更加流畅和响应迅速。

3、节约系统资源:相对于进程,线程的创建和销毁开销较小,可以更有效地利用系统资源。

3、线程和进程的区别是什么?

1、独立性:进程拥有独立的内存空间和系统资源,而线程是进程中的一个实体,共享进程的内存空间和系统资源。

2、资源占用:进程是资源分配的基本单位,而线程是调度执行的基本单位。线程比进程更轻量,创建和销毁的开销更小。

3、并发性:多个线程可以并发执行在同一个进程内,而多个进程则无法直接共享内存和资源。

4、 创建线程有几种方式?它们的优缺点

1、继承Thread类

优点:简单直观。
缺点:类的继承性受限,无法再继承其他类。

2、实现Runnable接口

优点:可以避免Java的单继承特性带来的局限,多个线程可以共享同一个Runnable实例。
缺点:相对于继承Thread类,实现接口的方式稍微复杂一些。

3、实现Callable接口

优点:可以获得执行结果,但需要借助ExecutorService执行器来启动线程。
缺点:相对于Runnable接口,实现Callable接口的方式更复杂一些。

5、run和start的区别是什么?

1、run方法:直接调用run方法并没有创建线程,而是在原来的线程中执行的代码。

2、start方法:调用start方法则是创建了线程,并在新线程中执行代码(与原来的线程并发执行)。

6、Java线程的状态有哪些?

NEW:线程对象已经创建,尚未启动。
RUNNABLE:线程已经启动,正在运行或准备运行。
BLOCKED:等待锁的时候进入的状态。
WAITING:特殊的阻塞状态,等待其他线程执行特定的操作。
TIMED_WAITING:线程等待另一个线程执行特定操作,但有一个时间限制。
TERMINATED:线程已经执行完毕或被中断。

7、同步和异步的区别是什么?

同步:多个线程在同一时间段内访问共享资源时,只有一个线程能够占用资源,其他线程必须等待。

异步:多个线程在不同时间段内访问共享资源时,各自单独占用资源,不存在竞争问题。

http://www.lryc.cn/news/392794.html

相关文章:

  • Java [ 基础 ] Java面向对象编程 (OOP) ✨
  • 敏捷开发笔记(第9章节)--开放-封闭原则(OCP)
  • 苹果电脑清理app垃圾高效清理,无需专业知识
  • 【算法】(C语言):快速排序(递归)、归并排序(递归)、希尔排序
  • 模型驱动开发(Model-Driven Development,MDD):提高软件开发效率与一致性的利器
  • 记录discuz修改用户的主题出售价格
  • WGAN(Wassertein GAN)
  • Maven基本使用
  • 在Linux系统中配置GitHub的SSH公钥
  • 小酌消烦暑|人间正清欢
  • C语言结构体的相关知识
  • RabbitMQ入门教程(精细版二带图)
  • IO、零拷贝、多路复用、connection、池化
  • Lua 错误处理
  • 二刷力扣——单调栈
  • elementPlus-vue3-ts表格单选和双选实现方式
  • Linux系统中卸载GitLab
  • 基于STM32F407ZG的FreeRTOS移植
  • 【IT领域新生必看】Java编程中的神奇对比:深入理解`equals`与`==`的区别
  • WEBHTTP
  • nodejs 获取客服端ip,以及获取ip一直都是127.0.0.1的问题
  • 微软与OpenAI/谷歌与三星的AI交易受欧盟重点关注
  • 微信小程序毕业设计-学生实习与就业管理系统项目开发实战(附源码+论文)
  • spring boot 接口参数解密和返回值加密
  • C语言自定义类型——联合体、枚举
  • 【trition-server】pytorch 文档:使用 Triton 提供 Torch-TensorRT 模型
  • wps 表格如何实现vlookup高级模糊搜索
  • 第一天(点亮led灯+led灯闪烁)——Arduino uno R3 学习之旅
  • 【C++题解】1561. 买木头
  • 解决android native包webview,webview中的请求blocked by CORS policy