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

网站开发公众号开发网页设计与制作教程杨选辉课后答案

网站开发公众号开发,网页设计与制作教程杨选辉课后答案,用aspx做的网站,乐陵德州seo公司1.背景: 项目中有用到协程,但是对于协程,线程,进程的区别还不是特别了解,所以用图示的方式画了出来,用于理清三者的概念。 2.概念理解: 2.1协程,线程,进程包含关系 一…

1.背景:

项目中有用到协程,但是对于协程,线程,进程的区别还不是特别了解,所以用图示的方式画了出来,用于理清三者的概念。

2.概念理解:

2.1协程,线程,进程包含关系
  • 一个系统可以有多个进程
  • 一个进程可以有多个线程(多个线程为了提高进程的资源利用率)
  • 一个线程可以有多个协程(多个协程为了提高线程的资源利用率)

2.2 共享资源范围 ,隔离性, 通信方式,适用场景对比

PS:该表从Kimi拷贝

名称共享资源范围 隔离性通信方式适用场景
进程独立内存空间、文件描述符、系统资源管道、消息队列、共享内存、套接字适用于需要高隔离性和独立资源的场景,如多用户环境或需要保护数据安全的场景。
线程进程内存空间、文件描述符、系统资源共享内存、互斥锁、条件变量适用于需要共享内存和高效通信的场景,如多任务处理或计算密集型任务。
协程线程内存空间、文件描述符、系统资源 非常低异步机制(awaitasyncio.Queue适用于 I/O 密集型任务,如网络请求、文件读写等,可以高效地利用单线程资源,避免线程切换的开销。

3,协程执行过程示意图

3.1 执行代码
#异步调用
import asyncioasync def model_gen(task,time):# 模拟异步过程print('进入' + task)await asyncio.sleep(time)  # 假设模型生成需要5秒print('处理继续'+ task)await asyncio.sleep(time)  # 假设模型生成需要5秒print('完成' + task)return task+'完成'async def main(name):# 异步调用print(name)#同步函数:asyncio.create_task() 是一个同步函数,它会立即返回一个 Task 对象。#返回的Task对象会被事件循环调度执行,asyncio.create_task() 本身不会等待任务完成。#asyncio.create_task() 提供了一种简单的方式来将协程包装成任务并提交到事件循环中,而不会阻塞调用它的线程。task1 = asyncio.create_task(model_gen('task1',4))print('create task1')task2 = asyncio.create_task(model_gen('task2',2))print('create task2')# 等待两个任务完成,并获取结果# await 是一个异步操作,当在协程中遇到 await 表达式时,当前协程会暂停执行,并将控制权交还给事件循环。result2 = await task2  # 协程挂载,task2执行完毕之后,才继续执行后续作业print('hello')result1 = await task1  # task1执行完毕之后,才能继续执行后续代码# 打印结果print("所有任务完成!")print(result1)print(result2)#asyncio.run是同步函数,会阻塞当前线程,所以main('main1')全部执行完毕之后,才能执行main2的代码
asyncio.run(main('main1'))
asyncio.run(main('main2'))
3.2 执行结果

main1
create task1
create task2
进入task1
进入task2
处理继续task2
处理继续task1
完成task2
hello
完成task1
所有任务完成!
task1完成
task2完成
main2
create task1
create task2
进入task1
进入task2
处理继续task2
处理继续task1
完成task2
hello
完成task1
所有任务完成!
task1完成
task2完成

3.3 执行图解及理解

图解如下:左边三列是协程,第四列是线程的占用情况,最右边是执行结果输出。

个人理解:(如果有问题,欢迎指正,目前循环事件如何确定执行哪个协程的这一块还没有研究)

1)每个协程启动之后,一直执行,直到挂起(比如await),可以是挂起多长时间,也可以是等待某个操作完成。挂起结束之后,协程变为可调用的状态,供事件循环调用
2)事件循环从可调用的协程中,将其放到协程进行执行,直到该协程挂起,再取下一个可调用协程执行。
3)每次协程被调用之后,会一直执行直到下一次挂起(比如await),所以如果协程中有一个非常耗时的同步操作,就有可能导致包含该操作的协程一直占用线程,导致其他协程一直等待。所以写异步程序时候,需要确认是否有非常耗时的同步操作。


文章转载自:

http://Ga21uJx7.pnmgr.cn
http://fYmovtlX.pnmgr.cn
http://Lx1TGHwk.pnmgr.cn
http://OHWOWIJM.pnmgr.cn
http://fu11YCcX.pnmgr.cn
http://wirLKFmw.pnmgr.cn
http://97dTpqO8.pnmgr.cn
http://voGTTlMu.pnmgr.cn
http://hVEejxsi.pnmgr.cn
http://eKhLdjqR.pnmgr.cn
http://i1ySEMHe.pnmgr.cn
http://07tP5K6K.pnmgr.cn
http://L5CDc7XE.pnmgr.cn
http://lAIemwHM.pnmgr.cn
http://CW6GVm1A.pnmgr.cn
http://3w38Ha6M.pnmgr.cn
http://UKqI2XSU.pnmgr.cn
http://VmH3mkPR.pnmgr.cn
http://1q1e9Itl.pnmgr.cn
http://xyyCf4v1.pnmgr.cn
http://cREBGGC0.pnmgr.cn
http://MEsOiiMx.pnmgr.cn
http://fBCCndYP.pnmgr.cn
http://NrSA5kCs.pnmgr.cn
http://1JTIx9IU.pnmgr.cn
http://B0QjcNmZ.pnmgr.cn
http://JqY3qknE.pnmgr.cn
http://EiC4O9NY.pnmgr.cn
http://yo9K1QuM.pnmgr.cn
http://xQaPeEH5.pnmgr.cn
http://www.dtcms.com/wzjs/602408.html

相关文章:

  • 哪个网站是做红酒酒的企业网站建设包括哪些
  • logo在线设计网站wordpress上传类型
  • 海南手机网站建设公司哪家好万维网网站域名续费
  • dedecms 购物网站安徽工程建设信息网官网
  • 烟台微网站建设wordpress 图片环绕
  • 网站建设书籍湖南建设人力
  • 自学编程的网站米拓建站官网怎么用不了
  • 培训类网站建设东莞网站搜索排名
  • 做外贸平台还是网站汉语资源建设相关网站
  • 2019做什么类型网站成都市城乡建设管理局网站
  • 微网站开发项目合作协议wordpress视频链接
  • 网站怎样做自适应分辨率大小网页打不开但是微信和qq都可以上
  • 网站开发的税率是多少钱营销型网站建设有哪些平台
  • 网站seo新闻潜江网页设计
  • 超酷 flash 网站网站描述怎么写好
  • 网站做外链的具体步骤免费一键logo设计
  • 广告传媒建设网站标书制作软件
  • 哪家网站建设服务好啊中国新闻社是事业编制吗
  • 福田网站建设费用预算可不可以免费创建网站
  • 建设银行网站打不开 显示停止工作网站开发中背景图片怎么弄全屏
  • 泉州有哪些公司是做网站网网站建设
  • 建网站的公司公司十大免费跨境网站
  • 温州企业网站建设怀化网站优化公司有哪些
  • 安全网站建设情况企业营销策略
  • 单页面 网站怎么做的厦门网站建设哪家便宜
  • 企业建设门户网站的目的横琴网站建设
  • 泰安网站建设制作服务网站设计一个月多少钱
  • 大型网站建设公司优化一个网站
  • 网站建设布吉大连甘井子区二手房
  • 应用公园是免费的吗西安网站优化排名案例