线程、进程和协程

"""
线程和进程
    共同点:都是用来实现多任务

为什么要有多任务:--提高效率
    eg:银行,如果只开一个工作窗口,是不是效率很差。开多个窗口将会大大提高工作效率,
        也就是说:一件事我们可以使用对个进程(线程)进行解决。
    
问题1:线程和进程的区别

    进程:是资源分配的单位,它有独立的内存空间。
    线程:是CPU调度单位,利用时间片对线程进行调度。
    
    CPU在任意时刻只能执行一个代码块(代码块当中会包含一个线程),因为CPU执行速度极快,
    所以多线程执行时,CPU对时间进行切片分别执行线程,但是因为极快,所以感觉起来是同时执行。

线程和进程的包含关系:
    一个进程包含多个线程。而且至少要有一个线程。因为线程是程序执行的基本单位。
    
什么时候用进程,什么时候用线程?
    计算密集型的时候使用进程。
    I/O密集型的时候使用线程。
    
"""

"""
GIL:全局解释器锁
    是python解析器是在设计之初加入一个排他锁。
    表示在任意时刻只有一个线程在解析器中运行。
    
    开发团队曾经试图去掉GIL,但是以失败告终,
    因为python的很多第三方库都死基于老的设计理念开发的,
    所以改动的工作量非常大--放弃
    但是给出了个解决方案--协程(微线程):线程之间的切换变得更加灵活,yield
    协程是比线程还要小的调度单位。
    

python的多线程是伪多线程。

"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值