亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

并發(fā)模型 - python將進程池放在裝飾器里為什么不生效也沒報錯

瀏覽:119日期:2022-06-27 14:55:55

問題描述

我想把進程池封裝在裝飾器里,但是它既沒生效也沒報錯

# coding:utf-8import multiprocessingimport tornadofrom tornado.httpclient import AsyncHTTPClientprocess_num = 20 # 進程數(shù)url = 'https://www.baidu.com'def handle_request(response): print str(response)def run_in_process(process_num): def _run_in_process(f):def __run_in_process(*args, **kwargs): pool = multiprocessing.Pool(processes=process_num) for i in range(process_num):pool.apply_async(f, args=args, kwds=kwargs, callback=kwargs.get('callback')) pool.close() pool.join()return __run_in_process return _run_in_process@run_in_process(process_num)def main(): http_client = AsyncHTTPClient() http_client.fetch(url, callback=handle_request) global loop loop = tornado.ioloop.IOLoop.instance() if loop._running is False:loop.start()if __name__ == ’__main__’: main()

結(jié)果如下

/usr/bin/python2.7 /home/xxx/workspace/py_project/crawler/center/sample.pyProcess finished with exit code 0

但是奇怪的是,我用多進程的方式重寫一次,發(fā)現(xiàn)是可以生效的

# coding:utf-8import multiprocessingimport tornadofrom tornado.httpclient import AsyncHTTPClientprocess_num = 20 # 進程數(shù)url = 'https://www.baidu.com'def handle_request(response): print str(response)def run_in_process(process_num): def _run_in_process(f):def __run_in_process(*args, **kwargs): _processes = [] for i in xrange(process_num):p = multiprocessing.Process(target=f, args=args, kwargs=kwargs)p.start()_processes.append(p) for p in _processes:p.join()return __run_in_process return _run_in_process@run_in_process(process_num)def main(): http_client = AsyncHTTPClient() http_client.fetch(url, callback=handle_request) global loop loop = tornado.ioloop.IOLoop.instance() if loop._running is False:loop.start()if __name__ == ’__main__’: main()

日志如下

/usr/bin/python2.7 /home/shufeng/workspace/private_project/jobscrawler/center/sample.pyHTTPResponse(_body=None,buffer=<_io.BytesIO object at 0x7f2fdaa21ef0>,code=200,effective_url=’http://www.baidu.com’,error=None,headers=<tornado.httputil.HTTPHeaders object at 0x7f2fdaa425d0>,reason=’OK’,request=<tornado.httpclient.HTTPRequest object at 0x7f2fdaa42250>,request_time=0.014312028884887695,time_info={})HTTPResponse(_body=None,buffer=<_io.BytesIO object at 0x7f2fdaa21ef0>,code=200,effective_url=’http://www.baidu.com’,error=None,headers=<tornado.httputil.HTTPHeaders object at 0x7f2fdaa43450>,reason=’OK’,request=<tornado.httpclient.HTTPRequest object at 0x7f2fdaa430d0>,request_time=0.02327895164489746,time_info={})HTTPResponse(_body=None,buffer=<_io.BytesIO object at 0x7f2fdaa21ef0>,code=200,effective_url=’http://www.baidu.com’,error=None,headers=<tornado.httputil.HTTPHeaders object at 0x7f2fdaa43510>,reason=’OK’,request=<tornado.httpclient.HTTPRequest object at 0x7f2fdaa43190>,request_time=0.026951074600219727,time_info={})HTTPResponse(_body=None,buffer=<_io.BytesIO object at 0x7f2fdaa21ef0>,code=200,effective_url=’http://www.baidu.com’,error=None,headers=<tornado.httputil.HTTPHeaders object at 0x7f2fdaa42690>,reason=’OK’,request=<tornado.httpclient.HTTPRequest object at 0x7f2fdaa42310>,request_time=0.0552978515625,time_info={})HTTPResponse(_body=None,buffer=<_io.BytesIO object at 0x7f2fdaa24ef0>,code=200,effective_url=’http://www.baidu.com’,error=None,headers=<tornado.httputil.HTTPHeaders object at 0x7f2fdaa39e10>,reason=’OK’,request=<tornado.httpclient.HTTPRequest object at 0x7f2fdaa39a90>,request_time=0.05612993240356445,time_info={})

同樣的情況也會出現(xiàn)在線程池跟協(xié)程的使用上,有誰知道這是怎么回事嗎?

問題解答

回答1:

知乎靈劍大神已回答此問題:https://www.zhihu.com/questio...

回答2:

在linux下運行, 會得到下面的報錯:

PicklingError: Can’t pickle <type ’function’>: attribute lookup __builtin__.function failed

而這個報錯是因為, 傳入不可序列化的對象進進程池時, 報錯導致的, 而這個對象就是實例方法, 可以試下用py3運行下, 因為3的實例方法已經(jīng)可以支持序列化

參考資料: https://virusdefender.net/ind...

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产极品白嫩超清在线观看 | 欧美三级不卡视频 | 国产露脸对白刺激3p在线 | 2018高清国产一道国产 | 男女叼嘿视频大全免费看 | 小明视频免费永久在线网 | 国产区一区 | 欧美一级特黄特色大片 | 日韩黄色三级视频 | 中国黄色免费网站 | 国产成人精品免费视频大全办公室 | 精品特级一级毛片免费观看 | 免费又色又爽的视频国产 | 国产亚洲片 | 亚洲日本在线免费观看 | 美国毛片一级视频在线aa | 日本视频二区 | 亚洲天天网综合自拍图片专区 | 免费三级毛片 | 亚洲最大看欧美片网站 | 亚洲精品二区中文字幕 | 1000部未满岁18在线观看网站 | 成人三级精品视频在线观看 | 欧美日本黄色片 | 好叼操这里只有精品 | 一级毛片一级毛片一级毛片 | 亚洲国产精品免费观看 | 日韩高清免费在线观看 | 成人国产精品毛片 | 国产观看精品一区二区三区 | 国产三级图片 | 国产99视频在线观看 | 国产在视频线在精品 | 三级黄色大片 | 色播欧美 | 中文字幕日韩专区 | 日本黄色小视频在线观看 | 黄色小视频在线观看 | 免费毛片在线视频 | 色综合天天综合高清影视 | 久久国产精品一区二区三区 |