多处理是否在一个内核上运行

时间:2020-10-15 16:38:37

标签: python selenium selenium-webdriver multiprocessing cpu-cores

我正在阅读硒的多处理,以了解它与硒的多线程相比的优势。

我了解计算机具有核心,例如我的有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()

1 个答案:

答案 0 :(得分:0)

多处理是否全部在一个内核上发生

您可以选择一个核心上要多少个进程

一个核心上有多少个进程应该有限制 如果有限制,什么是最好的解决方法

这不是您通过python代码执行的操作。操作系统由它负责。对于用户而言,线程或进程的数量实际上没有限制。

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