Python3之线程、进程、协程

本文深入探讨了进程、线程和协程的概念及其在计算机系统中的作用。进程作为系统级并发单位,线程实现进程内部并发,而协程则在单线程下实现并发。文章还对比了串行、并行和并发的区别,帮助读者理解不同场景下的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程、进程、协程

进程(系统级别的并发):计算机中一个程序在一个数据集上一次动态执行过程,主要包含三部分内容:
程序:描述进程的功能以及处理流程;
数据集:功能处理过程中需要的资源数据;
进程控制块(PCB):严格控制进程执行过程中的各种状态。

通俗来说,一个进程就是计算机上正在运行的一个程序; 一个软件程序要运行,需要将软件依赖的数据加载到内存中,通过 CPU 进行运算并按照程序定义的逻辑结构进行流程控制,知道数据处理完成后程序退出!在程序实际执行过程中,进程只是分配需要的数据资源,是程序的主体,在程序运行时真正运行的是线程,每个进程至少会有一个线程。
适用于计算密集型,主要是CPU计算。

线程(微进程:实现了进程内部的并发):计算机中程序运行的实际执行者就是线程,线程又称为轻量级进程,是一个 CPU 的执行单元,每个进程至少会有一个主线程用于执行程序。
适用于IO密集型,例如频繁的磁盘或网络IO。

协程(微线程:实现了单线程下的并发):又称微线程,纤程。英文名Coroutine。

线程和进程对比如下:
  • 一个进程可以有多个线程,但是至少有一个主线程;
  • 一个线程只能属于一个进程;
  • 一个进程中多个线程,可以共享进程中提供的数据;
  • CPU 运算分配给线程,CPU 上执行运算的是线程;
  • 线程是最小的运行单元,进程是最小的资源管理单元。

串行、并行、并发

串行:就是传统意义上的同步、顺序的意思,按照一定的执行步骤顺序执行每个环节。
并行:就是传统意义上的异步、同时的意思,同时执行接受到的多个任务。
并发:同时接收到多个任务,同时执行多个任务,但是具体到某个时刻~只是在执行一个任务,只是在很短时间内在多个任务之间切换,模拟形成了多个任务同时执行的现象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值