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

铜川市网站建设_网站建设公司_SSL证书_seo优化

站长工具推荐网站,购物网站网页模板,什么是企业云网站建设,做钢管用哪个门户网站一、IO模型介绍 1、阻塞与非阻塞指的是程序的两种运行状态 阻塞#xff1a;遇到IO就发生阻塞#xff0c;程序一旦遇到阻塞操作就会停在原地#xff0c;并且立刻释放CPU资源 非阻塞#xff08;就绪态或运行态#xff09;#xff1a;没有遇到IO操作#xff0c;或者通过某种…一、IO模型介绍 1、阻塞与非阻塞指的是程序的两种运行状态 阻塞遇到IO就发生阻塞程序一旦遇到阻塞操作就会停在原地并且立刻释放CPU资源 非阻塞就绪态或运行态没有遇到IO操作或者通过某种手段让程序即便是遇到IO操作也不会停在原地执行其他操作力求尽可能多的占有CPU 2、同步与异步指的是提交任务的两种方式 同步调用提交完任务后就在原地等待直到任务运行完毕后拿到任务的返回值才继续执行下一行代码 异步调用当进程执行到一个IO等待外部数据的时候不需要等待待数据接收成功后再回来处理。   1.io模型 提交任务得方式同步提交完任务等结果执行下一个任务异步提交完接着执行异步 回调 异步不等结果提交完任务任务执行完后会自动触发回调函数 同步不等于阻塞阻塞遇到io自己不处理os会抢走cpu ,解决办法监测到iogevent切换到其他任务类似欺骗os非阻塞cpu 运行 IO分类1.阻塞IO blocking IO2.非阻塞IO nonblocking IO3.IO多路复用 IO multiplexing4.信号驱动IO signal driven IO 用得比较少 5.异步IO asynchronous IO 遇到IO: 卡网络IO: 原地阻塞1.server端什么样得操作属于IO行为 # accept recv send 阻塞操作 accept recv 明显得等 send 不会明显等但是一种io行为 2.为什么IO行为会让有在原地等待的效果 3.非阻塞io: 自己监测io 遇到io 就切 并且把 单线程得效率提到最高 导致得问题1.当有数据来得时候cpu 在做其他得事情不会立即响应2.服务端没有任何阻塞说白了就是死循环cpu会一直运转线程处于就绪状态大量占用cpu ,做无用这个线程会一直问cpu有数据没有数据没 不推荐使用4.多路复用io:wait copy 还多了select 中间有个中介存在帮问os 有没有数据但是如果中介 只有1个 效率不如 阻塞效率但是如果中介监测多个套接字 性能高就是同时监测多个套接字问os系统好了没 就比阻塞io效率高监测套接字得io行为服务端得套接字有几类server connselect 阻塞io 效率高比非阻塞io 效率也高 一直做无用总结同时监测多个套接字列表 循环 慢 假设列表数据多循环 效率低 监测套接字好没好 从头到尾 循环1遍select 列表循环 效率低poll 可接收得列表数据多 效率也不高epoll 效率最高得 异步操作 每个套接字身上绑定个回调函数谁好了谁触发回调就不用去遍历了 效率低epoll windows 不支持linux 支持selectors 模块 自动根据操作系统选择pollepoll   二、阻塞IO模型 默认情况下所有的socket都是blocking模型 实际上除非特别指定几乎所有的IO接口 ( 包括socket接口 ) 都是阻塞型的。 这给网络编程带来了一个很大的问题如在调用recv(1024)的同时线程将被阻塞在此期间线程将无法执行任何运算或响应任何的网络请求。 blocking IO的特点就是在IO执行的两个阶段等待数据和拷贝数据两个阶段都被block了。         三、非阻塞IO模型   在非阻塞式IO中用户进程其实是需要不断的主动询问kernel数据准备好了没有。 from socket import *server socket(AF_INET, SOCK_STREAM) server.bind((127.0.0.1,8083)) server.listen(5) server.setblocking(False) print(starting...)rlist[] wlist[] while True:try:conn, addr server.accept()rlist.append(conn)print(rlist)except BlockingIOError:# print(干其他的活)#收消息del_rlist []for conn in rlist:try:dataconn.recv(1024)if not data:del_rlist.append(conn)continuewlist.append((conn,data.upper()))except BlockingIOError:continueexcept Exception:conn.close()del_rlist.append(conn)#发消息del_wlist[]for item in wlist:try:connitem[0]dataitem[1]conn.send(data)del_wlist.append(item)except BlockingIOError:passfor item in del_wlist:wlist.remove(item)for conn in del_rlist:rlist.remove(conn)server.close() View Code 四、多路复用IO模型   五、异步IO模型 六、各种IO模型对比 七、了解selectors模块的使用  转载于:https://www.cnblogs.com/foremostxl/p/9738068.html
http://www.ihoyoo.com/news/1335.html

相关文章:

  • 农业方面的网站建设升级湛江城乡建设网站
  • 成都自由行攻略最详细安卓优化大师老版本下载
  • 网页设计视频教程-响应式手机网站制作四川省工程建设管理协会网站
  • 应用软件设计过程汕头百度关键词优化
  • 做图片网站咋样江苏省网站建设与管理历年自考试题
  • 网站建设土豆视频教程网上买手表哪个平台最好
  • 做的好的网站有哪些济南市住房与城乡建设厅网站
  • 淄博网站制作形象杭州建设网杭州造价平台
  • 网站名称填写什么科技小手工
  • 做暧暧网站免费购物网站图标
  • 河南省建设工程质量协会网站h5网站制作价格
  • 网站开发那家好网站兼容浏览器服务
  • 网站建设的所需解决的技术问题校园生活网页设计图片模板
  • 网站解决访问量超载国内十强少儿编程机构
  • 自动更新的网站建设网站搬家内页打不开
  • 有没有做美食的网站建站神器
  • wordpress网站图片加速网站二级目录 修改路径
  • 淘宝有WordPress网站搭建吗微信登录
  • 网站怎么做留言板在线diy网站
  • 江西泰飞建设有限公司网站在线生成app网站源码
  • 外贸网站样式百度快照抓取的是网站哪里的内容
  • 网站子目录怎么做wordpress内容搬家
  • 怎么用手机网站做软件nginx配置wordpress
  • 自学做网站需要学会哪些化妆品商城网站方案
  • 一站式营销推广平台查企业信息的app
  • 企业建网站费用网络营销咨询公司
  • 网站logo代码深圳外贸公司获客
  • 长沙网站建设公司有哪些饿了么网站开发
  • 广州免费建站排行营销型网站可以吗
  • 中小企业官方网站小羚羊网站怎么建设