使用多处理池来调用具有参数化构造函数的类的方法



如何使用多处理池来调用具有参数化构造函数的类的方法?下面是我的示例程序。在这里,我需要使用工作进程池并行执行obj.api_call()方法。

import requests

class A:
def __init__(self, user):
self.user = user
def api_call(self):
url = "http://eample.com?name=" + self.user
print(url)
res = requests.get(url)
print(res)

name_list = ['ram', 'krish', 'shiv', 'david', 'rahul', 'gopal', 'vijay', 'sati']
for name in name_list:
obj = A(name)
obj.api_call()

一种简单的方法是创建一个负责实例化和调用的函数:

def mp_func(user):
a = A(user)
a.api_call()

并调用池中的函数。

如果你真的想让它与类中的函数一起工作,也许你可以使用一个classmethod:

class A(object):
def __init__(self, user):
self.user = user
def api_call(self):
print(self.user)
@classmethod
def mp_create_and_call(cls, user):
newcls = cls(user)
newcls.api_call()
import multiprocessing as mp
pool = mp.Pool(4)
usernames = ['a', 'b', 'c'] * 20
pool.map(A.mp_create_and_call, usernames)

相关内容

  • 没有找到相关文章

最新更新