久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

python - 當裝飾器遇到multiprocessing, 出了點bug.

瀏覽:130日期:2022-08-12 14:24:21

問題描述

from multiprocessing import Pooldef with_app_context(need_new=False): def magic(func):app_store = {}def wrapper(*args, **kwargs): print ’inside’, args, kwargs result = func(*args, **kwargs) return resultreturn 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?

問題解答

回答1:

似乎是這個原因,函數裝飾器不可pickle 可以看看這個:裝飾器與多進程以及Pickle

擴展: Python MultiProcessing 使用心得

回答2:

我已經找到原因了:

Traceback (most recent call last): File 'wrapper.py', line 30, in <module> print ret.get() File '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py', line 567, in get raise self._valuecPickle.PicklingError: Can’t pickle <type ’function’>: attribute lookup __builtin__.function failed

子進程異常.

回答3:

http://stackoverflow.com/ques...

標簽: Python 編程
主站蜘蛛池模板: 甘南县| 读书| 通化县| 苗栗县| 定远县| 梓潼县| 苏尼特右旗| 永春县| 麻城市| 高唐县| 海宁市| 河曲县| 安化县| 广昌县| 伽师县| 分宜县| 治多县| 桦川县| 大英县| 阿图什市| 元阳县| 静宁县| 马鞍山市| 武汉市| 黔南| 平陆县| 翁源县| 博湖县| 伊金霍洛旗| 万山特区| 奇台县| 岑巩县| 墨玉县| 台中市| 牟定县| 德兴市| 顺义区| 同仁县| 沈丘县| 任丘市| 崇左市|