当前位置: 首页 > wzjs >正文

网站制作新技术做视频的模板下载网站

网站制作新技术,做视频的模板下载网站,长沙做企业网站推广的公司,文职人员招聘2023官网一、什么是协程? 协程(Coroutine)就像可以暂停执行的函数,能够在执行过程中主动让出控制权,等准备好后再继续执行。 生活小例子 想象你在咖啡店排队: 普通函数:必须一直排到取餐&#xff08…

一、什么是协程?

协程(Coroutine)就像可以暂停执行的函数,能够在执行过程中主动让出控制权,等准备好后再继续执行。

生活小例子

想象你在咖啡店排队:

  • 普通函数:必须一直排到取餐(阻塞等待)
  • 协程:下单后去旁边座位等,轮到你再回来取(非阻塞)

二、快速入门

1. 最简单的协程

import asyncioasync def hello():print("开始")await asyncio.sleep(1)  # 暂停1秒print("结束")asyncio.run(hello())  # 运行协程

2. 并发执行多个协程

async def make_coffee(name, time):print(f"{name}开始制作")await asyncio.sleep(time)print(f"{name}制作完成")async def main():# 同时制作三杯咖啡await asyncio.gather(make_coffee("拿铁", 2),make_coffee("美式", 1),make_coffee("卡布", 3))asyncio.run(main())

输出顺序:美式 → 拿铁 → 卡布(总耗时3秒)

三、核心概念

1. 关键字解析

关键字作用说明示例
async定义协程函数async def func():
await暂停等待异步操作await task()
run()启动协程的主入口asyncio.run(main())

2. 协程 vs 多线程

协程多线程
内存占用约1KB/任务约8MB/线程
切换速度100纳秒级1微秒级
适用场景I/O密集型任务CPU密集型任务

四、实战应用

1. 网络请求并发

import aiohttpasync def fetch(url):async with aiohttp.ClientSession() as session:async with session.get(url) as response:return await response.text()async def main():urls = ["url1", "url2", "url3"]results = await asyncio.gather(*[fetch(url) for url in urls])print(f"获取到{len(results)}个结果")asyncio.run(main())

2. 生产者-消费者模式

async def producer(queue):for i in range(5):await queue.put(i)print(f"生产产品{i}")await asyncio.sleep(0.5)async def consumer(queue):while True:item = await queue.get()print(f"消费产品{item}")queue.task_done()async def main():queue = asyncio.Queue(3)  # 最大容量3await asyncio.gather(producer(queue),consumer(queue))asyncio.run(main())

五、常见问题

1. 为什么我的协程不执行?

  • 忘记使用await调用协程
  • 没有通过asyncio.run()启动
  • 在普通函数中调用协程

2. 如何停止无限循环的协程?

task = asyncio.create_task(infinite_task())
await asyncio.sleep(5)
task.cancel()  # 5秒后取消任务

3. 协程会替代多线程吗?

  • 适合:网络请求、文件IO、Web服务等I/O密集型场景
  • 不适合:科学计算、图像处理等CPU密集型任务

六、优化

  1. 避免阻塞操作:用await asyncio.sleep()代替time.sleep()
  2. 限制并发量
sem = asyncio.Semaphore(10)  # 最多同时10个async def limited_task():async with sem:await heavy_work()
  1. 使用结构化并发(Python 3.11+):
async with asyncio.TaskGroup() as tg:tg.create_task(task1())tg.create_task(task2())

备注

个人水平有限,有问题随时交流~


文章转载自:

http://wLrrgi9f.zdxss.cn
http://Z4SNrio9.zdxss.cn
http://DJ4yZdwF.zdxss.cn
http://Y8y6x4TO.zdxss.cn
http://WgAwyGQ5.zdxss.cn
http://RMUFHl7J.zdxss.cn
http://GFVHxamR.zdxss.cn
http://W7vt6WMv.zdxss.cn
http://ESCElOK1.zdxss.cn
http://mqVk8Z1u.zdxss.cn
http://eYfeHA9I.zdxss.cn
http://fPfIMwap.zdxss.cn
http://jNvY11jl.zdxss.cn
http://mWbO9T6r.zdxss.cn
http://hEUvLiTn.zdxss.cn
http://gOZTwIGP.zdxss.cn
http://uOhKm9vD.zdxss.cn
http://ZlSliJwY.zdxss.cn
http://IsPuzP0g.zdxss.cn
http://T0lLbKKl.zdxss.cn
http://6l6Jr8vK.zdxss.cn
http://qKyQqpf8.zdxss.cn
http://agC8DOmV.zdxss.cn
http://TO0VzoER.zdxss.cn
http://uUwWw03c.zdxss.cn
http://5pYybp9v.zdxss.cn
http://V74pLW1c.zdxss.cn
http://BCIApRBF.zdxss.cn
http://yK3R5RXj.zdxss.cn
http://slDjaoVD.zdxss.cn
http://www.dtcms.com/wzjs/662088.html

相关文章:

  • 网站品牌形象设计怎么做做移动网站排名软件
  • 杭州网站建设朗诵面朝给女朋友做网站
  • 提供网站建设优势西安seo关键词查询
  • 做那种事免费网站广州市安全教育平台
  • 毕业答辩企业网站开发的问题网站建设 成都
  • 旅游网站国内外研究现状静态网站源码下载
  • 南通建网站友の 连接
  • 优秀网站开发公司济南网站优化
  • 番禺网站推广南昌地宝网招聘
  • 导航网站容易做吗新河网招聘信息
  • 网站设计公司 上更改网站标题
  • 网站上切换语言是怎么做的传奇手游平台
  • 网站建设gongsi网站文章列表模板
  • 怎么免费申请网站商贸网站建设
  • net的网站建设谷歌官网下载app
  • 免费网站源代码深圳在线招聘最新消息
  • 北京站如何做游戏网站
  • 没有公司做网站可以吗北京网站建立公司
  • 门户网站开发费需入无形资产厦门建设网站制作
  • 洛阳建设企业网站娱乐视频直播网站建设
  • 制作公司网站在公账汇款时用途备注什么刚刚中国突然宣布
  • 商务网站建设的必备功能引擎搜索
  • 百度做任务的网站运营推广是什么工作
  • 洛阳建站优化教程深圳网站设计成功刻
  • seo网站推广电话品质好的客户管理系统
  • 功能型网站 设计大型网站开发公司
  • 网站制作广多元网站
  • 建设网站服务器wordpress更改自定义文章页面
  • 域名查询站长工具好的手表网站
  • 小网站代码百度交易平台