协程在python中怎么使用(python协程之动态添加任务的方法)
类别:脚本大全 浏览量:2543
时间:2022-01-27 01:10:09 协程在python中怎么使用
python协程之动态添加任务的方法python协程只能运行在事件循环中,但是一旦事件循环运行,又会阻塞当前任务。所以只能在当前进程中再开一个线程,这个线程的主要任务是运行事件循环,就是event_loop,因为他是一个无限循环,会阻塞当前线程。
放一个自己写的demo,注释写的很详细。
另外还有一点需要注意,一个事件循环中不能运行另外一个事件循环。
运行结果:
|
import asyncio from threading import thread async def production_task(): i = 0 while true: # 将consumption这个协程每秒注册一个到运行在线程中的循环,thread_loop每秒会获得一个一直打印i的无限循环任务 asyncio.run_coroutine_threadsafe(consumption(i), thread_loop) # 注意:run_coroutine_threadsafe 这个方法只能用在运行在线程中的循环事件使用 await asyncio.sleep( 1 ) # 必须加await i + = 1 async def consumption(i): while true: print ( "我是第{}任务" . format (i)) await asyncio.sleep( 1 ) def start_loop(loop): # 运行事件循环, loop以参数的形式传递进来运行 asyncio.set_event_loop(loop) loop.run_forever() thread_loop = asyncio.new_event_loop() # 获取一个事件循环 run_loop_thread = thread(target = start_loop, args = (thread_loop,)) # 将次事件循环运行在一个线程中,防止阻塞当前主线程 run_loop_thread.start() # 运行线程,同时协程事件循环也会运行 advocate_loop = asyncio.get_event_loop() # 将生产任务的协程注册到这个循环中 advocate_loop.run_until_complete(production_task()) # 运行次循环 |
以上这篇python协程之动态添加任务的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/qq_29349715/article/details/79730786
您可能感兴趣
- python有什么好的微信公众号(python下载微信公众号相关文章)
- python列表切片和分片(Python列表切片操作实例总结)
- python time模块记录时间(Python Datetime模块和Calendar模块用法实例分析)
- python实现的数据结构(Python嵌套式数据结构实例浅析)
- python实现螺旋矩阵(Python3实现的旋转矩阵图像算法示例)
- python中怎么输入单引号(python三引号输出方法)
- python验证码处理教程(python简单验证码识别的实现方法)
- python为什么使用logging(python中logging模块的一些简单用法的使用)
- eval详解python(深度辨析Python的eval与exec的方法)
- python转pdf教程(Python实现将HTML转成PDF的方法分析)
- python里import的是什么(python中import与from方法总结推荐)
- 笨办法学python3目录(如何愉快地迁移到 Python 3)
- python里range循环(Python for循环与range函数的使用详解)
- python怎么用pandas读取两列数据(python 利用pandas将arff文件转csv文件的方法)
- python删除列表中的重复元素(Python实现去除列表中重复元素的方法总结7种方法)
- pythontkinter循环显示文本(Python实现定时自动关闭的tkinter窗口方法)
- 这里输入关键词(怎么输入关键词搜索)
- 得这个 难治病 的人太多了,300个人赶到杭州商量怎么办(得这个难治病的人太多了)
- 经度,世界时间腕表的灵魂(世界时间腕表的灵魂)
- 阿里最新财报公布 三季度营收增长3 ,将增加150亿美元回购额度 在美股价小涨(阿里最新财报公布)
- 赵薇时胖时瘦 最近变美少女 原因在这里 躺着就变瘦(赵薇时胖时瘦最近变美)
- 学会这26种姿势,你就可以和兵哥哥切磋了(你就可以和兵哥哥切磋了)
热门推荐
- mysql8.0查询操作(MySQL 8.0 redo log的深入解析)
- mysql读写分离怎么做(MySQL读写分离,写完读不到问题如何解决)
- sw2018安装图解教程(WHMCS V7.4.2 图文安装教程)
- mysql数据库主键选择的详解(图文详解MySQL中的主键与事务)
- dedecms如何写接口(dede的sql语句调用方法使用示例)
- python能把时间转化成毫秒级吗(python 获取毫秒数,计算调用时长的方法)
- python获取txt文件内容(使用python读取.text文件特定行的数据方法)
- docker镜像如何打包(Docker打包镜像及修改配置的实现)
- mysql的索引及其介绍总结(浅析MysQL B-Tree 索引)
- linux lnmp安装教程(LNMP系列教程之 SSL安装WordPress博客程序下载与安装)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9