如何制作将在 Python 中创建进程的 for 循环?
How to make for loop that will create processes in Python?
我只是初学者,所以也许答案对你来说是显而易见的。我正在开发简单的程序,我想在那里使用多处理。我有一个函数(我们称它为 f),它正在对某些 URL 发出请求。我想让用户有机会选择 'threads' 的数量(功能数量 运行 同时?)。
我已经尝试在用户可以使用 input() 调整的变量范围内使用 _ 变量创建 for 循环,但我不知道如何创建进程(我知道该怎么做 'manually' 但不是 'automatically')。你能帮帮我吗?
if __name__ == '__main__':
p1 = Process(target=f1)
您可以使用Pool
来决定同时有多少进程运行。而且您不必为此构建循环。
from multiprocessing import Pool
import requests
def f(url):
print('url:', url)
data = requests.get(url).json()
result = data['args']
return result
if __name__ == '__main__':
urls = [
'https://httpbin.org/get?x=1',
'https://httpbin.org/get?x=2',
'https://httpbin.org/get?x=3',
'https://httpbin.org/get?x=4',
'https://httpbin.org/get?x=5',
]
numer_of_processes = 2
with Pool(numer_of_processes) as p:
results = p.map(f, urls)
print(results)
它将启动 2 个进程,前两个 url。当其中一个结束其工作时,它会再次开始处理下一个 url.
您可以在文档中看到与 Pool 类似的示例:multiprocessing
我只是初学者,所以也许答案对你来说是显而易见的。我正在开发简单的程序,我想在那里使用多处理。我有一个函数(我们称它为 f),它正在对某些 URL 发出请求。我想让用户有机会选择 'threads' 的数量(功能数量 运行 同时?)。
我已经尝试在用户可以使用 input() 调整的变量范围内使用 _ 变量创建 for 循环,但我不知道如何创建进程(我知道该怎么做 'manually' 但不是 'automatically')。你能帮帮我吗?
if __name__ == '__main__':
p1 = Process(target=f1)
您可以使用Pool
来决定同时有多少进程运行。而且您不必为此构建循环。
from multiprocessing import Pool
import requests
def f(url):
print('url:', url)
data = requests.get(url).json()
result = data['args']
return result
if __name__ == '__main__':
urls = [
'https://httpbin.org/get?x=1',
'https://httpbin.org/get?x=2',
'https://httpbin.org/get?x=3',
'https://httpbin.org/get?x=4',
'https://httpbin.org/get?x=5',
]
numer_of_processes = 2
with Pool(numer_of_processes) as p:
results = p.map(f, urls)
print(results)
它将启动 2 个进程,前两个 url。当其中一个结束其工作时,它会再次开始处理下一个 url.
您可以在文档中看到与 Pool 类似的示例:multiprocessing