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

多线程——面试中常考且要点非常多的内容(1)

在学习了进程之后,我们发现进程不断创建与销毁的开销很大,一开始想用多进程的方式,即每一个客户端请求发到服务器上,服务器提供一个进程,给这个客户端提供服务,通过多进程的方式,可以实现“并发编程”的效果,可效果依旧不佳,为了解决上述问题,引入了线程(Thread),也就是轻量级的进程,创建与销毁的开销更小了。

线程与进程的区别

1.进程包含线程

每个进程中,都会包含一个或多个线程。每个线程,都相当于一个要执行的任务;而每个线程,则是每个任务中运行的一段代码指令。

这个可以在任务管理器上看到。

2.进程是操作系统资源分配的基本单位;线程是CPU上调度执行的基本单位

进程与进程之间,所涉及到的资源是各自独立的,彼此之间互不干扰;进程内部的多个线程之间,会共享内存资源和硬盘资源;此外,进程创建,需要申请资源;进程销毁,需要释放资源;但对于线程来说,只是第一个线程创建的时候(和进程一起创建的时候)申请资源,后续再创建线程就不需要申请资源了;只有所有的线程都销毁(进程销毁)才会真正的释放资源,运行过程中销毁某个线程,也不会释放资源。

下面一些图片可以形象的描述进程与线程:

多个进程

多个线程

线程数量要适当

线程冲突

线程异常的危害

以上都是进程与线程的区别,需要重点理解。

创建线程的五种方法

线程,操作系统提供的概念,操作系统提供了一些api来供程序员使用。由于操作系统提供的原生线程api是C语言的,并且不同操作系统的线程api都不一样,Java对上述内容统一封装为Thread类。

1.Thread

在这之前,我们可以看到,在没有import包的情况下,使用Thread类竟然没有报错,只是因为Thread是Java.lang中默认的import包。

这里的Thread是父类,而Thread父类中,本身有一个run方法,于是子类要重写父类的run方法。

但是在调用时,不要调用run方法,而是调用start方法,run方法没有创建线程,只是对之前重写的run方法进行直接调用,相当于只有一个main线程。

而start的作用是:创建了一个新的线程,(这个代码可以“一心两用”,同时做两件事)。

sleep是一个静态方法,表示休眠,让当前的线程暂时放弃CPU,休息一会,时间过了之后再执行。但在sleep方法创建后,会有报错InterruptedException(受查时异常),于是需要捕获异常与抛出异常。

顺便提一下实际开发中,异常的处理方式:

1.记录异常信息作为日志,后续程序员根据日志调查问题

2.进行重试(网络异常)

3.(特别严重的问题)可以通过手机邮件或微信等,通知程序员(报警机制),要他们马上来处理。

2.Runnable

这个是实现Runnable,重写run,整体逻辑与Thread一致,但它本身有解耦合的作用,可以更好的修改,不至于像Thread一样,要改就得改所有与之有联系的部分,因此推荐使用Runnable来创建线程。

由于内容极多, 今天的内容就到这里,下次我们再讲,谢谢。

我的gitee链接:https://gitee.com/QQ2240635095/java3_31.git

http://www.jsqmd.com/news/576585/

相关文章:

  • 真空上料机哪家质量好口碑佳?2026年度实力生产企业与品牌选购指南 - 品牌推荐大师
  • 社交网络分析必看!大数据技术如何挖掘用户关系图谱
  • 从傅里叶到小波:信号处理中的频域与时频分析实战解析
  • 欧姆龙 CPM1A PLC 以太网模块对接上位机及 MCGS 触摸屏水切割配置方法
  • 告别硬编码WiFi!ESP32利用EEPROM和巴法云实现一键配网与断网自恢复的保姆级教程
  • Phi-4-mini-reasoning实操手册:通过tail日志定位推理超时与token截断问题
  • QQ空间历史记录安全导出与数据备份全指南:从痛点到解决方案
  • Proteus仿真跑通了,实物电路为啥不亮?C51单片机驱动LED的5个硬件避坑指南
  • 品臻选优 2026|酒店用品餐饮用品全维布局 厨具客房陶瓷餐具精研指南 - 深度智识库
  • homewwwwork
  • 5分钟搞定:用speedtest-cli和iperf3在家自测网络带宽(附常见报错解决)
  • 【实践】若依$.modal.open()多层弹窗场景下父窗口精准刷新方案解析
  • 基于Matlab的双向LSTM网络需求预测之旅
  • ZeroOmega代理架构深度解析:构建高效网络代理管理系统
  • 2026年服务响应快速AI客服,售后贴心助力企业高效运营 - 品牌2026
  • 2026碳化硼、二氧化硅、硅碳棒、螺纹棒源头厂家最新推荐:嵩山硼业硬核突围 - 深度智识库
  • 2026年传统酒商转型酱酒方案,性价比高的品牌排名 - 工业品网
  • Windows下OpenClaw安装指南:对接Qwen3-14B镜像全流程
  • 从一个医疗问诊 Agent 的诞生,看懂 LangChain、LangGraph 与 LangSmith
  • Vivado IOBUF原语使用避坑:为什么你的双向端口信号总连不上?
  • 嘉立创在线(1)基本使用 - MKT
  • GLM-4.1V-9B-Base快速上手:招聘JD截图岗位要求结构化提取
  • 4 款男士专用美白沐浴露 真实体验分享 - 品牌测评鉴赏家
  • 别再死记硬背Transformer公式了!用PyTorch手写一个带KV Cache的掩码解码器,理解GPT生成原理
  • 剖析2026襄阳谷城AI推广开展方法,揭秘靠谱公司 - myqiye
  • semi-utils智能引擎:照片水印效率革命全指南
  • 深度解析:数据仓库与数据湖的核心区别及架构选型指南
  • 软考 系统架构设计师历年真题集萃(234)
  • OpCore-Simplify:自动化配置与硬件适配的黑苹果零代码解决方案
  • 2026论文降AI率工具测评:6款主流神器实测效果对比 - 资讯焦点