Python面试系列之--进程、线程、协程的原理和比较

本文详细介绍了Python中的进程、线程和协程的基本原理及比较。进程作为操作系统分配资源的最小单位,每个进程拥有独立的地址空间。线程在同一进程内共享资源,允许多个任务并发执行。协程则提供了一种轻量级的并发方式,通过用户级调度实现高效执行。在单CPU系统中,线程和协程实现并发执行,而在多CPU系统中,可以实现程序并行运行。

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

持续更新中。。。

1. 进程、线程、协程的原理和比较

简答:
1. 进程:
2. 线程:
3. 协程:

1.进程:

  1. 操作系统分配最小单元, 进程是一个实体。每个进程都有自己的地址空间(CPU分配)。实体空间包括三部分:

    * 文本区域:存储处理器执行的代码。
    * 数据区域:存储变量或进程执行期间使用的动态分配的内存。
    * 堆栈:进程执行时调用的指令和本地变量。
    
  2. 进程是一个"执行中的程序"

    程序是指令与数据的有序结合, 程序本身是没有生命的, 只有CPU赋予程序生命时(CPU执行程序), 它才能成为一个活动的实体, 成为"进程"

    概括来说, 进程就是一个具有独立功能的程序在某个数据集上的一次运行活动

  3. 进程的特点:

    * 动态性:进程是程序的一次执行过程,动态产生,动态消亡。
    * 独立性:进程是一个能独立运行的基本单元。是系统分配资源与调度的基本单元。
    * 并发性:任何进程都可以与其他进程并发执行。
    
  4. 并发与并行

    并发:在操作系统中,某一时间段,几个程序在同一个CPU上运行,但在任意一个时间点上,只有一个程序在CPU上运行。

    当有多个线程时,如果系统只有一个CPU,那么CPU不可能真正同时进行多个线程,CPU的运行时间会被划分成若干个时间段,每个时间段分配给各个线程去执行,一个时间段里某个线程运行时,其他线程处于挂起状态,这就是并发。并发解决了程序排队等待的问题,如果一个程序发生阻塞,其他程序仍然可以正常执行。

    并行:当操作系统有多个CPU时,一个CPU处理A线程,另一个CPU处理B线程,两个线程互相不抢占CPU资源,可以同时进行,这种方式成为并行。

    区别:

    并发只是在宏观上给人感觉有多个程序在同时运行,但在实际的单CPU系统中,每一时刻只有一个程序在运行,微观上这些程序是分时交替执行。
    在多CPU系统中,将这些并发执行的程序分配到不同的CPU上处理,每个CPU用来处理一个程序,这样多个程序便可以实现同时执行。

2.线程:

3.协程:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值