繁体   English   中英

Multiprocessing in Python using Process,如何限制进程数

[英]Multiprocessing in Python using Process, how to limit the number of processes

我想同时运行多个进程,但是使用 Process 我不能一次限制进程的数量,这样我的电脑就无法用于其他任何事情。 在我的问题中,我必须为 my_dataset 中的所有数据运行 main_function。 这是我的代码的一个简短示例,是否可以一次限制进程数?

from multiprocessing import Process


def my_function(my_dataset):
    processes = []

    for data in my_dataset:
        transformed_data = transform(data)
        p = Process(target=main_function, args=(data, transformed_data))
        p.start()
        processes.append(p)

    for p in processes:
        p.join()

您可以利用多处理池https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.Pool

from multiprocessing import Pool
names = ["Joe", "James", "Jimmy"] * 10
    
    
def print_name(name):
    print(f"Got Name: {name}")
    
    
def runner():
    p = Pool(4)
    p.map(print_name, names)

if __name__== "__main__":            
    runner()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM