遇有交通阻塞情况应如何处理?
根据国务院第405号令《中华人民共和国道路交通安全法实施条例》规定,机动车遇有前方交叉路口交通阻塞时,应当依次停在路口以外等候,不得进入路口。机动车在遇有前方机动车停车排队等候或者缓慢行驶时,应当依次排队,不得从前方车辆两侧穿插或者超越行驶,不得在人行横道、网状线区域内停车等候。机动车在车道减少的路口、路段,遇有前方机动车停车排队等候或者缓慢行驶的,应当每车道一辆依次交替驶入车道减少后的路口、路段。
阻塞IO和非阻塞IO,主要区别在于第一个阶段。也即是阻塞IO,在套接字缓冲区没准备好的情况下,会一直等待。而非阻塞IO,在套接字缓冲区没准备好时,会立即返回。
获取IO数据,分为两个阶段,一是套接字缓冲区准备阶段;二是数据拷贝阶段(内核将数据从socket缓冲区拷贝到用户空间)。套接字的默认状态是阻塞的,但是有两种方式改变阻塞标志。一种是直接设置套接字为非阻塞,另一种是在方法中设置阻塞标记。
总结
在非阻塞IO下,用户程序通过轮询方式不断的查询,引起CPU占用率高(内核态和用户态的切换)。
所以一般将非阻塞IO和IO多路复用技术select、poll等搭配使用(其实select、poll也是不断的轮询多个socket,不过是在内核态)。
这种方式,极大的提高了程序的健壮性和稳定性,是Linux下高性能网络编程的首选。
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)