zoukankan      html  css  js  c++  java
  • GIL 锁

    ---恢复内容开始---

    1.同步锁(掌握)

    2.死锁,递归锁(掌握)

    3同步对象,信号量(了解)

    4 队列(重点)----生产者,消费者模型的创建

    5 进程(重点)

    并发&并行

    并发:是指系统具有处理多个任务(动作)的能力

    并行:是指系统具有 同时  处理多个任务(动作)的能力

    并行是并发的一个子集

    同步  与  异步

    同步:当进程执行到一个IO操作(等待外部数据)的时候你,--------等:同步

    异步:                        ---------不等:异步,一直等到数据接收成功,再回来处理

    异步的执行效率要比同步的高

    问题:开多线程时,多核没有用上

    GIL:全局解释锁

      因为有GIL,所以,同一时刻,只有一个线程被cpu执行

    处理方法:多进程+协程

    任务种类:IO密集型  

          计算密集型

    对于IO密集型的任务,Python的多线程时有意义的

              可以采用多进程+协程

    对计算密集型的任务,Python的多线程就不推荐,Python就不适用了

    协程:  协作式,-------非抢占式的程序。线程进程都是程序自己切换的。协程是有程序员编码时自己来决定何时切换

       协程本质上就是一个线程

      优点:1.没有切换的消耗,2,没有锁的概念

      缺点:不能用多核。但可以用多进程+协程来解决此问题

    yield(协程)

    用户态切换

    key:什么时候切换

  • 相关阅读:
    Linux中的中断处理
    Yocto使用小技巧
    udev学习笔记汇总
    USB gadget学习笔记
    Linux常用命令
    Linux下软件安装方法
    278. First Bad Version
    MySQL的索引
    7. Reverse Integer
    排序算法
  • 原文地址:https://www.cnblogs.com/lhqlhq/p/8990531.html
Copyright © 2011-2022 走看看