在一个核心上进行多处理 运行
Does multiprocessing run on one core
我正在阅读有关使用 selenium 进行多处理的文章,以了解它相对于使用 selenium 进行多线程处理的优势。
我知道计算机有内核,例如我的有 4 个,计算机有逻辑核心,例如我的也有4个。
我想了解的是,当我使用多处理时,确实会在一个内核上完成所有操作,如果是的话,是哪个内核?就像我的电脑或其他核心正在使用的主核心一样。
是否也可以选择一个内核上有多少个进程,是否应该有限制。
我的问题如果不清楚:
多处理是否全部发生在一个核心上
你能选择一个核心上有多少进程吗
一个核心上的进程数是否应该有限制
- 如果应该有限制,最好的解决方法是什么
这是我的代码:
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 中的多处理。
我正在阅读有关使用 selenium 进行多处理的文章,以了解它相对于使用 selenium 进行多线程处理的优势。
我知道计算机有内核,例如我的有 4 个,计算机有逻辑核心,例如我的也有4个。
我想了解的是,当我使用多处理时,确实会在一个内核上完成所有操作,如果是的话,是哪个内核?就像我的电脑或其他核心正在使用的主核心一样。
是否也可以选择一个内核上有多少个进程,是否应该有限制。
我的问题如果不清楚:
多处理是否全部发生在一个核心上
你能选择一个核心上有多少进程吗
一个核心上的进程数是否应该有限制
- 如果应该有限制,最好的解决方法是什么
这是我的代码:
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 中的多处理。