多进程Python装饰器

时间:2015-10-17 21:07:03

标签: python python-2.7

对不起任何错别字或错误,我在手机上。

基本上我在一个模块中有一个功能

#foo.py 
def foo(x):
    return x*x

我想用一个将这个函数提交给ProcessPool的函数(在我的例子中是一个ProcessPoolExecutor)来装饰

# process.py
_Pool = ProcessPoolExecutor() 

def proc_wrap(func):
    @wraps(func)
    def wrapper(*args, **kwargs) :
        return _Pool.submit(func, *args, **kwargs) 

    return wrapper

所以我有两个问题:

  • 每次启动新进程时都会重新初始化进程池,是否有办法将进程池包装起来,使其看起来是全局的,但每次都不会重新创建?
  • 该函数不可选,因为它试图在__builtins__上进行查找,即使func.__module__func.__name__是正确的,并且将函数导入process.py也没有因为ids不同而工作

平台是Windows 10.如果需要,我可以发布更详细的代码。谢谢您的帮助!

0 个答案:

没有答案