根据计算机容量产生的最大python进程数

问题描述

我有一个或多或少像这样的程序。

在主程序中,我刮了一些匹配项,并获得了所有匹配项的列表。为了从其中获取信息并与它们进行交互,我需要使用硒打开浏览器,查找匹配项的名称,打开它并获取其信息。如果触发了多个警告,它将在页面上执行某些操作。比赛结束后,过程结束。

from multiprocessing import Process

browser=Webdriver.Chrome()  
List_of_matches=functionformatches(browser) 
for me in list_of_matches:
    p=Process(target=m_scraper,args=(me,)) 
    p.start() 

def m_scraper(me):
    #Open the browser
    #Go to the page and navigate to the match
    #Open the match and monitor it
    #If trigger is activated do something
    #If the match is over return

目前,我有一个限制,因此如果列表大于10个项目,则在生成10个进程后会停止,但是我想知道是否有某种方法可以调整该数字以充分利用PC(或VPS)。 因此,简而言之,我想要一种基于程序正在运行的计算机来知道应该生成多少个进程的方法

解决方法

充分利用PC或de VPS的方法是创建与您正在使用的CPU或计算机核心数量一样多的进程,将列表设置为大于最大数量的进程没有任何好处。核心,因为该机器并发运行的进程数不能超过核心数。

了解机器有多少个内核的一种方法是:

import multiprocessing as mp

num_workers = mp.cpu_count()