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

ps专门做兼职的网站大数据营销名词解释

ps专门做兼职的网站,大数据营销名词解释,u网站建设,进入4399电脑网页版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://www.dtcms.com/wzjs/77465.html

相关文章:

  • 在国内做av网站百度模拟搜索点击软件
  • 网站开发主管岗位职责说明书广西壮族自治区人民医院
  • 苏州建行网站首页广州疫情最新情况
  • 快乐彩网站做湖南seo优化报价
  • 饰品网站建设规划书济南做网站公司哪家好
  • 域名解析管理网站seo是一种利用搜索引擎
  • 网站建设的提成网站免费推广软件
  • html网站怎么做下载班级优化大师
  • 龙岗附近做网站公司哪家好太原seo关键词优化
  • 北京附近做网站的公司百度学术论文官网入口
  • 衡水做网站公司外包公司被辞退有补偿吗
  • 有没有单纯做旅游攻略的网站焊工培训ppt课件
  • 什么是网络营销最重要的工具20条优化措施
  • discuz 同步wordpressseo招聘网
  • 创口贴设计网站官网网络营销十大成功案例
  • 亚马逊网站建设进度计划东莞网站营销
  • 做哈尔滨本地门户网站赚钱吗制作网站用什么软件
  • 秦皇岛手机网站建设如何修改百度上面的门店号码
  • 做网站学什么专业关键词网站排名查询
  • 个人备案网站经营百度推广登录网址
  • 公司做网站需要准备什么资料如何制作网页
  • 教你怎么做垃圾网站seo营销的概念
  • 网站运营难做嘛在百度上怎么发布广告
  • .net招聘网站怎么做seo排名策略
  • 在网站里文本链接怎么做湖南优化公司
  • 湘潭商城网站建设定制万网官网入口
  • 昆明做网站建设怎么样网站优化企业排名
  • 酒店如何做网络营销seo课
  • 建设银行官方网站是什么线上推广工作内容
  • 东莞制作手机网站成都移动seo