Я читаю о многопроцессорности с селеном, чтобы увидеть его преимущества перед многопоточностью с селеном.

Я понимаю, что у компьютеров есть ядра, например у меня их 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
coderoftheday 15 Окт 2020 в 19:38

1 ответ

Лучший ответ

Работает ли многопроцессорность на одном ядре

Нет

Можете ли вы выбрать, сколько процессов вы хотите на ядре

Нет

Должно ли быть ограничение на количество процессов в ядре? Если должно быть ограничение, как лучше с этим справиться?

Это не то, что вы делаете из кода Python. За это отвечает O / S. Для пользователя практически нет ограничений на количество потоков или процессов.

И Мени Иссаков прав, вам стоит прочитать о многопроцессорности в python.

0
sleepyhead 15 Окт 2020 в 17:23