gpt4 book ai didi

python - 如何在Python中测试线程

转载 作者:行者123 更新时间:2023-12-01 09:19:25 25 4
gpt4 key购买 nike

我正在学习如何在 Python 中测试线程,因为我以前从未这样做过。我已经加了锁,但它说我有一个断言错误,这很好。我想知道下面的代码是否正确

import threading

i = 0

def test():
global i
for _ in range(100000):
with threading.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()

assert i == 1000000, i

最佳答案

您的问题是您在每次迭代中创建一个新的锁,该锁始终处于解锁状态。

这样就可以了,因为您的线程将尝试获取相同的锁。

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)

关于python - 如何在Python中测试线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50923112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com