gpt4 book ai didi

python - 为什么random.shuffle(Array)在多个线程中有相同的 yield ?我该如何纠正?

转载 作者:行者123 更新时间:2023-12-03 12:51:39 24 4
gpt4 key购买 nike

下面的代码在三个不同的线程中将大量数据按随机顺序整理为完全相同的顺序。为什么不是唯一地对它们进行改组?

Settings = json.loads(open('Settings.json', 'r').read())

def update_assets():
Array = Settings['Location']
random.shuffle(Array)
print(Array)

for x in range(3):
threading.Thread(target = update_assets).start()

最佳答案

所有这三个线程都在改组相同的对象。您可能会看到不同的结果,具体取决于线程的调度方式,但是所有线程都在改组相同的数组并进行打印。

如果要查看三个不同的结果,则应制作三个副本,例如使用:

def update_assets(locs):
random.shuffle(locs)
print(locs)

for x in range(3):
threading.Thread(target = update_assets,
args = (Settings['Location'][:],)).start()

关于python - 为什么random.shuffle(Array)在多个线程中有相同的 yield ?我该如何纠正?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59699086/

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