dis 查看字节码

虽说GIL保证了同一时刻只有一个线程在工作,
但是不能保证对同一变量的操作是原子操作,因此需要枷锁

原子操作:一个字节码所能完成的操作。


 

import dis

l = [0]


def foo():
    l[0] = 1


print(dis.dis(foo))
'''
  7           0 LOAD_CONST               1 (1)
              2 LOAD_GLOBAL              0 (l)
              4 LOAD_CONST               2 (0)
              6 STORE_SUBSCR                    # 2个字节码操作,可能在线程执行过程中切换到其他线程
              8 LOAD_CONST               0 (None)
             10 RETURN_VALUE
None

'''

 

posted @ 2020-06-14 13:32  慕沁  阅读(158)  评论(0)    收藏  举报