asyncio.Future对象
Future是Task类的基类
Task对象内部await结果的处理是基于Future对象来的
 async def main():
# 获取当前事件循环
loop = asyncio.get_running_loop()
# 创建一个任务(Future对象)
fut = loop.create_future() # 等待任务的最终结果(Future对象),没有结果会一直等待下期
await fut asyncio.run(main())
async def set_after(fut):
await asyncio.sleep(2)
# 给fut赋值666
fut.set_result("666") async def main():
# 获取当前事件循环
loop = asyncio.get_running_loop() # 创建一个任务(Future对象),没有榜单任何行为。则这个任务永远不知道什么时候结束
fut = loop.create_future()
# 创建一个任务(task)对象,榜单了set_after函数,函数内部在2s后会给fut赋值
# 手动设置future任务的最终结果,那么fut就可以结束了
await loop.create_task(set_after(fut))
# 等待Future对象获取最终结果,否则一直等待下去
data = await fut
print(data) asyncio.run(main())
concurrent.futures.Future对象
 使用线程池、进程池实现异步时用到的对象
import time
from concurrent.futures import Future
from concurrent.futures.thread import ThreadPoolExecutor # 线程池
from concurrent.futures.process import ProcessPoolExecutor # 进程池 def func(v):
time.sleep(1)
print(v) # 创建线程池
pool = ThreadPoolExecutor(max_workers=3)
for i in range(10):
# 线程池提交之后,会返回一个Future对象
fut = pool.submit(func, i)
print(fut)
如果使用异步编程的时候遇到第三方模块不支持的时候,可以使用
 
 

最新文章

  1. Sublime Text 3 全程详细图文原创教程(持续更新中。。。)
  2. 使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)
  3. c/s 与b/s构架
  4. Tableview 优化Cell的复用机制01
  5. C++类的底层机理
  6. iOS GCD简单使用
  7. elasticsearch插件之一:kibana
  8. sqoop导入数据到hive
  9. Android NDK 环境搭建 + 测试例程
  10. (转)android ndk 给结构体赋值的方法
  11. latex 批量注释
  12. 【树莓派】h2数据库操作相关
  13. 11.巨坑,注意了,关于显示不正常的问题,localstorage的存储问题
  14. chrome开发工具指南(七)
  15. 201521123027 <java程序设计>第九周学习总结
  16. Jquery购物车jsorder改进版,支持后台处理程序直接转换成DataTable处理
  17. js获取当前页面的url网址信息小汇总
  18. linux 内存使用情况详解
  19. Tomcat下bootstrap启动分析
  20. Angular ng-include 学习实例

热门文章

  1. MyBatis 01 概述
  2. java-RandomAccessFile操作以及IO流简单使用
  3. 744. 寻找比目标字母大的最小字母--LeetCode
  4. 对Jmeter-基础线程组的一点解释
  5. linux centos7开启防火墙端口
  6. 轻松月薪过万,NISP证书含金量有多重|NISP管理中心|网安伴|nisp
  7. 网站制作工具之EditPlus的使用
  8. 一文了解.Net的CLR、GC内存管理
  9. 【java】学习路径27-HashSet、TreeSet,HashMap
  10. Android蓝牙线控切歌、连接状态监听(无线耳机也适用)