首页 > 其他 > 详细

GIL锁

时间:2019-12-17 22:59:15      阅读:119      评论:0      收藏:0      [点我收藏+]

global  interpreter lock 金局解释锁, 使得同一时刻只有一个线程在cpu上执行python的字节码文件,无法将多个线程映射到各个cpu上执行.

gil会根据执行的字节码行数或cpu时间片,或io操作,会主动释放gil锁

 

import threading
total = 0
def add():
    global total
    for i in range(1000000):
        total += 1


def sub():
    global total
    for i in range(1000000):
        total -= 1

if __name__ == __main__:
    t1 = threading.Thread(target=add)
    t2 = threading.Thread(target=sub)
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    print(total)   # 并不等于0,说明不是等t1执行完了t2再执行.

GIL锁

原文:https://www.cnblogs.com/z-qinfeng/p/12056884.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!