Python3之concurrent.futures的map方法,回调函数应用(important)
来源:互联网 发布:史丹利的寓言mac 编辑:程序博客网 时间:2024/05/16 04:40
map用法
代码演示
from concurrent.futures import ThreadPoolExecutordef deal_num(n): return n ** 2if __name__ == '__main__': t = ThreadPoolExecutor() # for i in range(10): # t.submit(deal_num,i) obj = t.map(deal_num, range(10)) print(list(obj)) print('主')
代码解读
- 直接用映射map可以简化代码,不需要使用shutdown
- 没有回调函数,直接收集函数运行结果
回调函数
代码演示
from concurrent.futures import ThreadPoolExecutorimport requestsdef get_page(url): res = requests.get(url).text return {'url': url, 'res': res}def parse_page(res): # parse_page的参数是带着get_page结果的future对象,必须要拿到结果 res = res.result() with open('a.txt', 'a', encoding='utf-8') as f: f.write('%s-%s\n' % (res['url'], len(res['res'])))if __name__ == '__main__': urls = [ 'http://www.openstack.org', 'https://www.python.org', 'http://www.sina.com.cn/' ] t = ThreadPoolExecutor() for url in urls: t.submit(get_page, url).add_done_callback(parse_page)
代码解读
t.submit(get_page, url).add_done_callback(parse_page)
- 线程池异步提交的任务交给后面的回调函数是将前面产生的future对象给了后面的parse_page函数,所以需要在之前先获取到值。
- 这种方式不需要shutdown
阅读全文
0 0
- Python3之concurrent.futures的map方法,回调函数应用(important)
- python3源码剖析之concurrent.futures.ThreadPoolExecutor
- Python3之爬虫中回调函数的简单应用
- Python3之concurrent.futures实现线程池,进程池
- python concurrent.futures 简单应用
- python并发之concurrent.futures
- python并发之concurrent.futures
- 回调函数的应用
- 回调函数的应用
- 回调函数的应用
- 回调函数的应用
- Python3之进程池与回调函数
- python并发库:concurrent.futures的使用
- JS之——回调函数的简单应用(插曲)
- 回调函数应用
- 回调函数(函数指针的应用)
- 回调函数的简单应用
- Flex 回调函数的应用
- C++矩阵运算库推荐
- vue 和animate.css 的动画使用
- (用二进制的思路)给定一个集合S,打印出集合所有的子集
- XUtils 3 Source analysis
- iOS 浅谈页面跳转与返回的几种方法
- Python3之concurrent.futures的map方法,回调函数应用(important)
- C语言指针部分总结
- 使用python给outlook多个联系人发邮件
- vue 购买弹出框 动画
- java实参与形参
- 手写servlet方法
- PAT乙级 1045. 快速排序(25)
- 菜鸟总结
- Undefined variable "caffe" or class "caffe.reset_all".