我正在学习如何在p中测试线程,因为我以前从未这样做过。我已经锁定但是它说我有一个断言错误,这很好。我想知道以下代码是否正确
答案 0 :(得分:1)
您的问题是您在每次迭代时都会创建一个新锁,它始终处于解锁状态。
这样它就可以工作,因为你的线程会尝试获取相同的锁。
import threading
i = 0
lock = threading.Lock()
def test():
global i
for _ in range(100000):
with lock:
i += 1
threads = [threading.Thread(target=test) for t in range(10)]
for t in threads:
t.start()
for t in threads:
t.join()
print(i)