python - 当装饰器遇到multiprocessing, 出了点bug.
本文介绍了python - 当装饰器遇到multiprocessing, 出了点bug.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
from multiprocessing import Pool
def with_app_context(need_new=False):
def magic(func):
app_store = {}
def wrapper(*args, **kwargs):
print 'inside', args, kwargs
result = func(*args, **kwargs)
return result
return wrapper
return magic
@with_app_context(need_new=True)
def func(k1, k2):
print k1, k2
return 'ret'
pool = Pool(processes=1)
pool.apply_async(func, args=('hi', 'yo'))
pool.close()
pool.join()
什么结果都不输出, 请问哪有bug?
解决方案
似乎是这个原因,函数装饰器不可pickle
可以看看这个:
装饰器与多进程以及Pickle
这篇关于python - 当装饰器遇到multiprocessing, 出了点bug.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文