"""
GIL
1.会根据执行的字节码行数或者时间片释放
2.还会在遇到io操作的时候制动释放,来方便其他线程处理,所以对于频繁io操作,多线程和多进程差别不大
"""
total = 0
def add():
global total
for i in range(1000000):
total += 1
def desc():
global total
for i in range(1000000):
total -= 1
import threading
a = threading.Thread(target=add)
b = threading.Thread(target=desc)
a.start()
b.start()
a.join()
b.join()
print(total)