多线程之面试常考题——进程线程联系和区别(全面详解)【多线程0】

🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇

进程线程的紧密联系

🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇

今日推荐歌曲: death bed (coffee for your head ) -- Powfu / beabadoobee 🎵🎵


目录

[1. 定义](#1. 定义)

[2. 资源分配](#2. 资源分配)

3.并发性

[4. 切换开销](#4. 切换开销)

[5. 通信机制](#5. 通信机制)

[6. 错误隔离](#6. 错误隔离)

总结


进程和线程是操作系统中管理和执行任务的两个重要概念,它们有着以下区别和联系:

1. 定义

进程(Process):是程序在执行过程中分配和管理资源的基本单位。每个进程都有独立的地址空间、内存和系统资源。

进程主要描述的是个⼈业务,即⼀个⼈完全处理⾃⼰的业 务。

线程(Thread):是进程中的一个执行单元,是CPU调度的基本单位。线程共享进程的地址空间和系统资源,但拥有独立的执行栈和程序计数器。

⼀家公司要去银⾏办理业务,既要进⾏财务转账,⼜要进⾏福利发放,还得进⾏缴社保。 如果只有张三⼀个会计就会忙不过来,耗费的时间特别⻓。为了让业务更快的办理好,张三⼜找来两 位同事李四、王五⼀起来帮助他,三个⼈分别负责⼀个事情,分别申请⼀个号码进⾏排队,⾃此就有 了三个执⾏流共同完成任务,但本质上他们都是为了办理⼀家公司的业务。 此时,我们就把这种情况称为多线程,将⼀个⼤任务分解成不同⼩任务,交给不同执⾏流就分别排队 执⾏。其中李四、王五都是张三叫来的,所以张三⼀般被称为主线程(MainThread)。

进程是包含线程的.每个进程⾄少有⼀个线程存在,即主线程。


2. 资源分配

  • 进程独立拥有系统资源,如内存空间、文件句柄等,每个进程有自己的资源集合。
  • 线程共享所属进程的资源,如内存空间、打开的文件等,但拥有独立的执行栈和程序计数器

⽐如之前的多进程例⼦中,每个客⼾来银⾏办理各⾃的业务,但他们之间的票据肯定是不想让别⼈知 道的,否则钱不就被其他⼈取⾛了么。⽽上⾯我们的公司业务中,张三、李四、王五虽然是不同的执 ⾏流,但因为办理的都是⼀家公司的业务,所以票据是共享着的。这个就是多线程和多进程的最⼤区 别。

进程和进程之间不共享内存空间.同⼀个进程的线程之间共享同⼀个内存空间.


3.并发性

进程是系统中独立的执行单位 ,多个进程可以并发执行,彼此之间相互独立。

线程是进程中的实际执行单元 ,一个进程可以拥有多个线程,这些线程可以并发执行,共享进程的资源。


4. 切换开销

进程切换开销较大,因为需要切换地址空间和系统资源。

线程切换开销较小,因为线程共享进程的资源,切换时只需保存和恢复线程的执行栈和程序计数器。


5. 通信机制

进程间通信需要使用特定的通信机制,如管道、消息队列、共享内存等。

线程间通信更加直接,可以通过共享内存等方式进行通信。


6. 错误隔离

进程间相互独立,一个进程的错误不会影响其他进程。

线程共享进程的资源,一个线程的错误可能会影响到其他线程以及整个进程的稳定性。

⼀个进程挂了⼀般不会影响到其他进程.但是⼀个线程挂了,可能把同进程内的其他线程⼀起带⾛(整 个进程崩溃).


总结

在实际应用中,进程和线程往往会结合使用,利用进程间的独立性和线程间的共享特性,来提高系统的并发性和效率。

真嘟超级详细,都是手敲的 ,希望能帮助大伙,博客不易,

点赞 收藏 加关注,知识进脑不迷路!!!

相关推荐
thefool1122662 分钟前
TCP 1
java·1024程序员节
企业数字化笔记2 小时前
视频人体姿态怎么做三维可视化?2D关键点、深度局限与技术选型
人工智能·算法·音视频
古希腊掌管代码的神THU2 小时前
为什么DPO中chosen/rejected概率同时下降?
人工智能·深度学习·机器学习·自然语言处理·面试
andrsted2 小时前
练题簿在线免费刷题:让整理过的资料,变成能反复练习的题库
学习·微信小程序·小程序·学习方法·刷题·1024程序员节
金銀銅鐵2 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
?abc!3 小时前
(数组)581. 最短无序连续子数组
数据结构·算法·leetcode
AI人工智能+电脑小能手3 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
paopaokaka_luck4 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_32241428045 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
小郎君6585 小时前
MPTT树复选框的半选状态:一棵百万节点树从递归到计数器,再到区间覆盖
算法