zoukankan      html  css  js  c++  java
  • python GIL锁

    GIL锁 全局解释器锁

    无论cpu是多少核的,python同一时间执行的线程只有一个,但是给我们的感觉是并发的?因为python在不断的进行上下文的切换。

    python的线程是调用操作系统的原生线程。因为调用的是c的接口。当Python要调用这个线程去执行任务的时候,cpu要知道上下文,所以要把上下文关系传给cpu。

    要求是起4个线程,每起一个线程num+1 。因为每个线程都是独立并行执行的,所以他们得到的num都是等于1,那么返回的结果都是2。他们计算的时候也是并行的不是串行的。

    可能每个线程分到不同的cpu内核上,但是同一时间只有一个在执行。避免数据出错,Python加一个全局锁,同一时间,只有一个线程能拿到这个数据。去修改。

    因为在多线程中,所有变量都由所有线程共享,所以,任何一个变量都可以被任何一个线程修改,因此,线程之间共享数据最大的危险在于多个线程同时改一个变量,把内容给改乱了。

  • 相关阅读:
    XSS
    XSS
    检查空引用
    LockInt
    Unity Shaderlab: Object Outlines 转
    git 恢复单个文件的历史版本
    烽火HG220G-U E00L2.03M2000光猫改桥接教程
    mark mem
    转 class和struct最本质的区别
    unity shader base pass and additional pass
  • 原文地址:https://www.cnblogs.com/qing-chen/p/7676366.html
Copyright © 2011-2022 走看看