python中有些操作是线程安全的,内部集成了锁的机智,比如
list.append
list.extend
线程不安全的时候,为了避免数据的混乱,需要手动添加锁
from threading import Thread,Lock
a = 6
def f():
global a
lock.acquire()#获取
for i in range(100000000):
i+=1
lock.release()#释放
def f1():
global a
lock.acquire() # 获取
for i in range(100000000):
i-=1
lock.release() # 释放
if __name__ == '__main__':
# print(a)
lock =Lock()
b = Thread(target=f,name='wangzi')
c = Thread(target=f1,name='wangzi1')
b.start()
c.start()
b.join()
c.join()
print(a)