zoukankan      html  css  js  c++  java
  • python GIL

    GIL: Global Interpreter Lock,相当于一个锁

    python中一个线程对应于c语言中的一个线程,gil使得同一个时刻只有一个线程在一个cpu上执行字节码, 无法将多个线程映射到多个cpu(一个CPU一核)或多核CPU上执行,gil会根据执行的字节码行数以及时间片释放gil,gil在遇到io的操作时候主动释放

    total = 0
    
    def add():
        #1. dosomething1
        #2. io操作
        # 1. dosomething3
        global total
        for i in range(1000000):
            total += 1
    def desc():
        global total
        for i in range(1000000):
            total -= 1
    
    import threading
    thread1 = threading.Thread(target=add)
    thread2 = threading.Thread(target=desc)
    thread1.start()
    thread2.start()
    
    thread1.join()
    thread2.join()
    print(total)
  • 相关阅读:
    danci8
    禁止选择文本
    danci6
    danci5
    java 学习编译
    自动代码模板文件
    java 学习5 .io
    java 学习4 callback 回调 和泛型
    java 学习3。集合
    java 学习3。类 和 继承
  • 原文地址:https://www.cnblogs.com/callyblog/p/11129336.html
Copyright © 2011-2022 走看看