gpt4 book ai didi

python - 如何并行洗牌大量项目,python

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:39:53 24 4
gpt4 key购买 nike

我在 python 上的计算遇到了瓶颈:我需要打乱一个大列表(~10^9 元素)。当前实现:

import random
random.shuffle(list)

使用这种方法,只涉及一个核心。是否可以并行洗牌一个大列表?

最佳答案

您可以查看 Process类,可以这样举例:

import random
from multiprocessing import Process


def worker_func(variable_1):
# your code

random.shuffle(list_single)

if __name__ == '__main__':
#Create a process list
process_list = list()

pid = os.getpid()
print('Main Process is started and PID is: ' + str(pid))

#Start Process
list_example = [[1,2,3], [4, 5, 6], [7, 8, 9]]
for list_single in list_example:
p = Process(target=worker_func, args=(list_single, ))
p.start()
child_pid = str(p.pid)
print('PID is:' + child_pid)
process_list.append(child_pid)
child = multiprocessing.active_children()

while child != []:
time.sleep(1)
child = multiprocessing.active_children()

如果你想并行运行这些数据,你可以使用multithreadingmultiprocessing .您应该定义辅助函数并在流程中调用它。

关于python - 如何并行洗牌大量项目,python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44844828/

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