首页>>后端>>Python->python中多协程开多少?

python中多协程开多少?

时间:2023-12-07 本站 点击:0

导读:今天首席CTO笔记来给各位分享关于python中多协程开多少的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

python里怎么实现多个协程一起执行,只要完

需要使用新的函数as_completed()来实现,可以把多个并发的协程一起给它,但它把返回的结果变成一个生成器,每次返回一个协程的结果,与函数wait()一样,执行协程是乱序的,不会等所有协程执行完成才返回。例子:

import asyncio

async def phase(i):

    print('in phase {}'.format(i))

    await asyncio.sleep(0.5 - (0.1 * i))

    print('done with phase {}'.format(i))

    return 'phase {} result'.format(i)

async def main(num_phases):

    print('starting main')

    phases = [

        phase(i)

        for i in range(num_phases)

    ]

    print('waiting for phases to complete')

    results = []

    for next_to_complete in asyncio.as_completed(phases):

        answer = await next_to_complete

        print('received answer {!r}'.format(answer))

        results.append(answer)

    print('results: {!r}'.format(results))

    return results

event_loop = asyncio.get_event_loop()

try:

    event_loop.run_until_complete(main(3))

finally:

    event_loop.close()

结果输出如下:starting main

waiting for phases to complete

in phase 2

in phase 1

in phase 0

done with phase 2

received answer 'phase 2 result'

done with phase 1

received answer 'phase 1 result'

done with phase 0

received answer 'phase 0 result'

results: ['phase 2 result', 'phase 1 result', 'phase 0 result']

python中多进程+协程的使用以及为什么要用它

python是一款应用非常广泛的脚本程序语言,谷歌公司的网页就是用python编写。python在生物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料

python;CMD命令行;windows操作系统

方法/步骤

1、首先下载安装python,建议安装2.7版本以上,3.0版本以下,由于3.0版本以上不向下兼容,体验较差。

2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 .py格式,editplus和notepad支持识别python语法。

脚本第一行一定要写上 #!usr/bin/python

表示该脚本文件是可执行python脚本

如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。

3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度

4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。

python greenlet 查看当前有多少个协程

greenlet可以实现协程,不过每一次都要人为的去指向下一个该执行的协程,显得太过麻烦。python还有一个比greenlet更强大的并且能够自动切换任务的模块gevent

gevent每次遇到io操作,需要耗时等待时,会自动跳到下一个协程继续执行。

python多进程+协程实现并发

小练习,假设一个队列中有100000个URL地址,每个请求需要1秒钟,尝试用4个进程,每个进程中开启1000个协程去请求!统计运行时间

运行时间27秒

结语:以上就是首席CTO笔记为大家介绍的关于python中多协程开多少的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/18436.html