• python全栈开发_day35_锁,进程池,线程池


    1.GIL
    全局解释器锁 只在Cpython解释器中
    由于Cpython内存管理不是线程安全的!

    2.内存管理>>>垃圾回收机制
    1.引用计数
    2.标记清除
    3.分代回收

    3.同一进程下的多个线程在同一时刻只能有一个线程被执行


    4.线程是直接能够被cpu执行吗?
    必须先抢解释器才能被cpu执行



    5.GIL是加在Cpython解释器上的一把锁,并不能保证数据的安全
    如果你想保证数据的安全,就必须加不同的锁



    6.GIL与普通的互斥锁的区别


    7.死锁与递归锁
    即便你记住了没acquire一次就release一次的操作,也会产生死锁现象

    递归锁:可以连续的acquire(),每acquire()一次计数加一


    8.信号量
    如果把互斥锁比喻成独立卫生间,那么信号量就相当于多个卫生间


    9.event事件
    event = Event()

    event.set() # 告诉另外一个子线程 你可以运行了

    event.wait() # 等待别人给我发set()信号

    10.线程q
    消息队列
    普通的q 队列 先进先出
    LIFO 堆栈 先进后出
    优先级q q.put((数字,数据)) 数字越小优先级越高

  • 相关阅读:
    ⛅剑指 Offer 11. 旋转数组的最小数字
    ✨Shell脚本实现Base64 加密解密
    Linux配置Nginx
    378. Kth Smallest Element in a Sorted Matrix
    875. Koko Eating Bananas
    278. First Bad Version
    704. Binary Search
    69. Sqrt(x)
    LeetCode 110 判断平衡二叉树
    LeetCode 43 字符串相乘
  • 原文地址:https://www.cnblogs.com/xuxingping/p/10853911.html
Copyright © 2020-2023  润新知