首页 > 编程语言 >python 执行多个任务, 哪个任务先返回用这个任务的结果,其他任务停止

python 执行多个任务, 哪个任务先返回用这个任务的结果,其他任务停止

时间:2023-07-22 11:24:51浏览次数:35  
标签:task https python submit 任务 result 哪个 executor

 

 

 

 

# coding=utf-8
"""
    @project: icnet
    @Author:angdh
    @file: demo.py
    @date:2023-07-22 10:58
"""

import concurrent.futures

import requests


def task(url):
    # 执行任务的代码
    result = requests.get(url, timeout=10, verify=False)
    return result


executor = concurrent.futures.ThreadPoolExecutor()

future1 = executor.submit(task, "https://www.baidu.com")
future2 = executor.submit(task, "https://www.163.com")
future3 = executor.submit(task, "https://www.qq.com")
future4 = executor.submit(task, "https://www.126.com")
future5 = executor.submit(task, "https://www.sina.com.cn/")

done, not_done = concurrent.futures.wait([future1, future2, future3, future4, future5],
                                         return_when=concurrent.futures.FIRST_COMPLETED)

result = done.pop().result()


print(result.text)

这样,当有任务先执行完时,就会返回该任务的结果,并停止其他任务的执行。注意,这个代码示例中的任务是通过线程池执行的,如果你想使用进程池,可以使用concurrent.futures.ProcessPoolExecutor()代替ThreadPoolExecutor()

 

标签:task,https,python,submit,任务,result,哪个,executor
From: https://www.cnblogs.com/angdh/p/17573022.html

相关文章

  • 使用Python内置的错误信息
    1'''2语法1:3try:4可能引发异常的代码块5except异常类ase:#使用e作为其别名6异常处理代码块7'''8910defdivision(x,y):11try:12returnx/y13except(ZeroDivisionError,TypeError)as......
  • Python 预习提纲
    以下是Python的预习提纲的Markdown格式示例:Python预习提纲1.Python基础Python的历史与特点Python解释器与开发环境的安装Python开发工具与常用IDE2.数据类型与运算变量与赋值语句数字类型与基本运算字符串类型与常见操作列表、元组与字典的定义与操作3......
  • Python和Java的BASE64操作
    Python中的操作1.1相关链接Python编码解码---字符集/base641.2举例说明在Python中,base64.b64encode()方法用于对给定的字节数据进行Base64编码。该方法接受一个bytes-like对象(例如字节数组或字节字符串)作为输入,并返回一个Base64编码的字节字符串。使用base64.b64encode()......
  • 国内最财大气粗的镜像是哪个
    以前一直以为清华tuna镜像是他们学校自己搞得,虽然比较全但肯定没阿里腾讯云带宽高。今天看到alpine统计的镜像站数据:https://mirrors.alpinelinux.org/10Gbps带宽的中国镜像有:mirrors.tuna.tsinghua.edu.cnmirrors.nju.edu.cnmirrors.aliyun.comtuna的赞助商有华为,......
  • Python学习——Day 8
    字典·字典   ·Python内置的数据结构之一,与列表一样是一个可变序列   ·以键值对的方式存储数据,字典是一个无序的序列·字典的实现原理   ·字典的实现原理与查字典类似,查字典是先根据部首或拼音查找对应的页码,Python中的字典是根据key查找value所在的位置......
  • python路径问题
    from和importfrommoduleimportfuna=fun()importmodulea=module.fun()两者在效果上是等价的,区别是第一种方式只引用了module中的fun函数,而第二种方式引用了整个module。frommoduleimport*a=fun()这种方式会让开发者导入module中的所有公有类,函数,......
  • python变量问题
    目录1.Delphi定义数组2.Python定义数组(1)列表(2)array.array(3)np.zeros3.Django框架定义数组(1)ArrayField(依赖于PostgreSQL数据库)(2)JSONField(支持PostgreSQL、MySQL、SQLite)(3)TextField(4)CharField+validators(5)列表,不定长​ 在编程中,数组是相同类型的元素的集合。数组在Java,C/C++,J......
  • Python全局变量和局部变量
    目录1.python的全局变量和局部变量第一种:global定义全局变量在自定义函数内部第二种:全局定义全局变量,并给其赋值2.python类中public,protected,private定义方式3.python中类的实例化1.python的全局变量和局部变量全局变量定义:在函数外部定义的变量。所有函数内部都可以使用......
  • Python基础day50
    RegExp对象//在JS中使用正则表达式,在js中如何使用正则呢?//定义正则表达式两种方式varreg1=newRegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");//第一种定义方式varreg2=/^[a-zA-Z][a-zA-Z0-9]{5,11}///第二种定义方式//正则校验数据varres=reg2.test('jason666......
  • win10+python3.8+Anaconda3+cuda10.2+cudnn7.6+pytorch安装教程
    版本问题很重要,为了这个版本,真的吐血版!!!其他链接1.cuda10.2+cudnn7.6安装和测试的方法2.彻底卸载Anaconda3.新建的虚拟环境总是在c盘怎么解决1.安装Anaconda3在Anaconda安装的过程中,比较容易出错的环节是环境变量的配置,所以大家在配置环境变量的时候,要细心一些①安装......