博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 线程池 futures使用
阅读量:5954 次
发布时间:2019-06-19

本文共 1128 字,大约阅读时间需要 3 分钟。

python 线程池

  • 例一
# 首先导包 from concurrent.futures import ThreadPoolExecutor # 创建线程池 executor = ThreadPoolExecutor(10) # 测试方法 def test_function(num1, num2):     print(num1, num2)     return num1 + num2 # 第一个参数为具体的方法,后面为方法的参数 future = executor.submit(test_function, 1, 2) # future的result()方法可以获取到函数的执行结果 print(future.result())

ThreadPoolExecutor(pool_count): pool_count代表创建线程的数量,会返回一个该线程池的执行者对象,这个对象的submit()方法和map()方法,能够使用线程池中的线程来执行我们指定的方法,并且返回一个Future对象。Future对象的result()方法,可以获取我们方法执行的结果。如果方法一直没有返回或执行完毕,则result()方法会进入阻塞状态,直到我们的方法返回或执行完毕。

  • 例二
from concurrent.futures import ThreadPoolExecutor executor = ThreadPoolExecutor(10) def test_function(num1, num2):     print(num1, num2)     return num1 + num2    result_iterators = executor.map(test_function, [1, 2], [5, 5])     for result in result_iterators:         print(result)

"""

executor.map(function, 参数1_list, 参数2_list, 参数n_list)

参数1_list: 代表方法第一个参数的列表
参数2_list: 代表方法第二个参数的列表
如:
executor.map(test_function, [1, 2], [5, 5]) 代表,执行test_function方法,第一个线程的参数为1和5,第二个线程的参数为2和5。 线程1:test_function(1, 5) 结果为1 + 5 = 6 该方法返回的是一个可迭代的对象,里面直接包含了每个方法执行的结果,不需要调用result()方法。 详情:
"""

结果

1 5

2 5
6
7

转载地址:http://sloxx.baihongyu.com/

你可能感兴趣的文章
24周年,“常青树”Delphi发布新版本10.3.1
查看>>
7. 从数据库获取数据- 从零开始学Laravel
查看>>
阿里百川码力APP监控 来了!
查看>>
使用dotenv管理环境变量
查看>>
温故js系列(11)-BOM
查看>>
Vuex学习
查看>>
bootstrap - navbar
查看>>
切图崽的自我修养-[ES6] 编程风格规范
查看>>
[React Native Android 安利系列]样式与布局的书写
查看>>
利用dxflib读写cad文件
查看>>
服务器迁移小记
查看>>
FastDFS存储服务器部署
查看>>
Android — 创建和修改 Fragment 的方法及相关注意事项
查看>>
流程控制: jQ Deferred 与 ES6 Promise 使用新手向入坑!
查看>>
swift基础之_swift调用OC/OC调用swift
查看>>
Devexpress 15.1.8 Breaking Changes
查看>>
推荐JS插件:imagesLoaded,监测图片加载情况并提供相应的事件(加载成功/失败)...
查看>>
Java B2B2C多用户商城 springcloud架构- common-service 项目构建过程(七)
查看>>
杨老师课堂之ArrayList集合常用方法解析
查看>>
ElasticSearch Client详解
查看>>