进程与线程的区别与联系

今天,我给大家讲解的是进程与线程的区别与联系。

1.定义

进程是操作系统进行资源分配与调度的基本单位,是一个程序的执行过程,拥有独立的内存空间和系统资源。【故两个进程之间无法直接进行交互,她们的交互必须依赖专门的进程间通信(IPC)机制】。线程的定义是进程的执行单位,是CPU调度和执行的基本单位,一个进程包含多个线程,线程共享进程资源。

2.联系

进程与线程是包含关系,进程包含线程,那是因为什么原因引入线程的呢?主要有三个关键原因:1.进程的内存与资源不能共享,交互比较麻烦,且进程的创建与销毁要分配与回收很多资源**【内存、句柄】** ,切换也要保存大量的上下文**【上下文指程序运行到某一刻记录,是CPU执行这个任务的所有关键状态信息】**;2.提高CPU的利用率,一个进程仅处理一个任务,即便有多核CPU,也只能调用一个核心,浪费算力,一个进程含多个线程,这些线程可同时占多核并行执行任务;3.实现任务的并发任务协同,简化操作,使用进程的话,资源隔离较为麻烦。同一进程内的所有线程共享该进程的内存空间、文件描述符表等资源,多线程可以在一个进程内并发执行,线程与进程的调度由操作系统内核完成,而进程的调度会影响到内部线程的执行。以上就是进程与线程的联系。

3.区别

进程与线程的区别:1.进程是资源分配的最小单位,线程是CPU调度的最小单位;2.单个进程只能占用一个核心,但一个进程内线程,可以同时占多个核心并执行,切换开销小于进程;3.进程的独立性强,进程间互不影响,线程的独立性弱,线程之间会相互影响;进程创建、销毁、切换开销大,线程创建、销毁、切换开销相对小。以上是它们的区别。

此篇到此结束!(若有误,望告知,感谢!

相关推荐
好好沉淀1 小时前
Windows 下升级 Maven 3.6.1 到 3.9.9 踩坑全记录
java·windows·maven
weixin_436525071 小时前
Windows 上终止占用的端口进程
windows
古道青阳2 小时前
Duilib 技术全景剖析
c++·windows
jing.wang_20253 小时前
NVIDIA CUDA C++编程环境搭建--Windows + Ubuntu 22.04
c++·windows·ubuntu·gpu算力
wechatbot8883 小时前
解决企业微信官方 API 短板:iPad 协议全功能对接方案
java·汇编·windows·http·微信·企业微信
测试专家3 小时前
PCI-1553B板卡在 Windows Server 2016 服务器安装流程详解
服务器·windows·单片机
西邮彭于晏3 小时前
Conda 常用命令速查手册:从入门到精通
windows·conda
米尔的可达鸭3 小时前
UDP 通信深度实验:从 Windows FastPath 到 ICMP 端口不可达的完整排查
windows·websocket·网络协议·rust·udp·wireshark·tcpdump
WangWei_CM4 小时前
Windows 进程枚举的 Native API 缓冲区遍历
windows
王维同学16 小时前
Winsock 协议与名称空间 Provider 目录
网络·c++·windows·安全