1 """
2 线程锁
3 我这用的是python3.7,必须要加锁才可以保证数据的确定性
4 """
5 import time
6 from threading import Thread, Lock
7
8 lock = Lock()
9
10 list1 = [0] * 10
11
12
13 def task1():
14 lock.acquire() # 获取锁
15 for i in range(len(list1)):
16 list1[i] = 1
17 print("设置list1")
18 time.sleep(0.5)
19 lock.release() # 释放锁
20
21
22 def task2():
23 lock.acquire() # 获取锁
24 for i in range(len(list1)):
25 print("list1[i] =", list1[i])
26 time.sleep(0.5)
27 lock.release() # 释放锁
28
29
30 if __name__ == '__main__':
31 t1 = Thread(target=task1, name="task1")
32 t2 = Thread(target=task2, name="task2")
33 t1.start()
34 t2.start()
35
36 print("over")