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)
如果使用异步编程的时候遇到第三方模块不支持的时候,可以使用
 
 

4.Future对象的更多相关文章

  1. Java异步调用Future对象

    Future类存在于JDK的concurrent包中,主要用途是接收Java的异步线程计算返回的结果. 个人理解的使用场景大概如下: 有两个任务A和B,A任务中仅仅需要使用B任务计算成果,有两种方法实 ...

  2. 线程笔记:Future模式

    线程技术可以让我们的程序同时做多件事情,线程的工作模式有很多,常见的一种模式就是处理网站的并发,今天我来说说线程另一种很常见的模式,这个模式和前端里的ajax类似:浏览器一个主线程执行javascri ...

  3. java Future 接口介绍

    (转自:http://blog.csdn.net/yangyan19870319/article/details/6093481) 在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java ...

  4. java多线程系类:JUC线程池:06之Callable和Future(转)

    概要 本章介绍线程池中的Callable和Future.Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.co ...

  5. java-并发-高级并发对象1

    以往说到的线程对象都是java平台中非常初级的API,用于处理一些基本的任务,对于一些复杂高级的工作,就需要一些高级的并发对象,尤其是针对于当今的应用程序,要充分利用现在的多核多处理器系统的性能. 以 ...

  6. Java多线程系列--“JUC线程池”06之 Callable和Future

    概要 本章介绍线程池中的Callable和Future.Callable 和 Future 简介示例和源码分析(基于JDK1.7.0_40) 转载请注明出处:http://www.cnblogs.co ...

  7. Java多线程与并发库高级应用-Callable与Future的应用

    Callable这种任务可以返回结果,返回的结果可以由Future去拿 >Future取得的结果类型和Callable返回的结果类型必须一致,这是通过泛型来实现的. >Completion ...

  8. Java并发编程核心方法与框架-Future和Callable的使用

    Callable接口与Runnable接口对比的主要优点是Callable接口可以通过Future获取返回值.但是Future接口调用get()方法取得结果时是阻塞的,如果调用Future对象的get ...

  9. Callable 和 Future接口 学习

    * Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务. * Callable和Runnable有几点不同: * (1)C ...

随机推荐

  1. Taurus.MVC WebAPI 入门开发教程5:控制器安全校验属性【HttpGet、HttpPost】【Ack】【Token】【MicroService】。

    系列目录 1.Taurus.MVC WebAPI  入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...

  2. 通俗理解ABP中的模块Module

    网上有不少文章说ABP的模块,有的直接翻译自官网介绍,有的分析Modlue的源代码,有的写一通代码,没什么注释,很少有能通俗说清的.那么,有两个问题:1.ABP中的模块到底是什么?2.搞这个东西是干嘛 ...

  3. GitHub Pages 站点建设

    1.简介 GitHub Pages 是通过 GitHub 托管和发布的公共网页,将纯文本转换为静态博客网站. 您可以使用 GitHub Pages 来展示一些开源项目.博客甚或分享您的简历,有内存限制 ...

  4. mybatisplus入门

    一.maven项目文件 点击查看代码 <dependency> <groupId>org.springframework.boot</groupId> <ar ...

  5. Spring(一)- 初始 + DI+scope

    1.获取bean实例的三种方式 1.1 id 属性 1.1.1 jar <properties> <project.build.sourceEncoding>UTF-8< ...

  6. 1.4_HTML的标签简介

    HTML 标签 HTML 标记标签通常被称为 HTML 标签 (HTML tag). HTML 标签是由尖括号包围的关键词,比如 <html> HTML 标签通常是成对!出现的,比如 &l ...

  7. 【设计模式】Java设计模式 - 责任链模式

    [设计模式]Java设计模式 - 责任链模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 一个有梦有戏的人 @怒放吧德德 目录 [设计模式]Java设计模式 - 责 ...

  8. KingbaseFlySync delete语句WHERE条件缺失的解析出错问题处理思路

    KingbaseFlySync delete语句WHERE条件缺失的解析出错问题处理思路 关键字: KingbaseFlySync.Linux.x86_64.mips64el.aarch64.Java ...

  9. 创建一个k8s私有仓库-harbor

    〇.前言 这一步应该是在搭建k8s之前做好,注意了奥 一.安装docker和docker-compose 1.下载docker-compose的最新版本 # 建议那种网上冲浪下载!,下载下来记得命名成 ...

  10. 目标检测-SSD算法从零实现

    1. 几个工具函数 def box_corner_to_center(boxes): """从(左上,右下)转换到(中间,宽度,高度)""" ...