在一个核心上进行多处理 运行

Does multiprocessing run on one core

我正在阅读有关使用 selenium 进行多处理的文章,以了解它相对于使用 selenium 进行多线程处理的优势。

我知道计算机有内核,例如我的有 4 个,计算机有逻辑核心,例如我的也有4个。

我想了解的是,当我使用多处理时,确实会在一个内核上完成所有操作,如果是的话,是哪个内核?就像我的电脑或其他核心正在使用的主核心一样。

是否也可以选择一个内核上有多少个进程,是否应该有限制。

我的问题如果不清楚:

  1. 多处理是否全部发生在一个核心上

  2. 你能选择一个核心上有多少进程吗

  3. 一个核心上的进程数是否应该有限制

    • 如果应该有限制,最好的解决方法是什么

这是我的代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

import time
import multiprocessing



class go():
    def __init__(self):
        self.run()
    def run(self):
        options = webdriver.ChromeOptions()
        options.add_argument('--headless', )
        self.browser = webdriver.Chrome('chromedriver.exe',options=options)
        self.browser.get('https://www.wikipedia.org/')

        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.ID, "searchInput"))).send_keys('Python',Keys.ENTER)
        time.sleep(3)
        print('Moved To Next Section ')

        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "Computing"))).click()
        time.sleep(3)
        print('Moved To Next Section ')

        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "People"))).click()
        time.sleep(3)

        print('Moved To Next Section ')
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "Roller coasters"))).click()
        time.sleep(3)

        print('Moved To Next Section ')
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "Vehicles"))).click()
        time.sleep(3)

        print('Moved To Next Section ')
        WebDriverWait(self.browser, 10).until(
            EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "Weaponry"))).click()
        time.sleep(100)



if __name__ == "__main__":

    for count in range(10):
        multiprocessing.Process(target=go).start()

Does multiprocessing happen all on one core

没有

Can you choose how many processes you want on a core

没有

Should there be a limit to how many processes you have on a core If there should be a limit what is the best way to work this out

这不是您通过 python 代码执行的操作。 O/S 负责。对于用户来说,线程或进程的数量几乎没有限制。

Meny Issakov 是对的,您应该阅读 python 中的多处理。