2016 - 2024

感恩一路有你

回应与响应的区别 事件驱动和请求响应模式有什么区别?

浏览量:1241 时间:2021-03-13 02:05:55 作者:admin

事件驱动和请求响应模式有什么区别?

这两样东西的层次不同,不适合比较。操作系统对设备进行抽象后,将设备分为块设备和流设备,通过中断处理相应的IO事件。为了降低上下文切换的成本,一般操作系统都会尝试将IO事件绑定到CPU上进行处理。典型的事件处理框架,如poll、epoll等,大多在内核中进行优化,实现无阻塞,充分利用DMA,减少内存拷贝,提高效率。为用户提供同步或异步调用接口。进一步优化Epoll,为异步调用提供水平触发器或边缘触发器支持,减少用户调用次数。这种编程模式主要基于事件启动模型。

许多流协议,如TCP、HTTP等,它们的编解码器实际上是基于非阻塞异步事件驱动的。与HTTP协议一样,它本质上是一个请求-响应协议。解析请求时,上层应用程序需要对其进行处理。此时,框架需要考虑是向用户提供同步回调接口还是异步回调接口。这与用户的线程管理策略有很大关系。如果提供了同步回调,则用户可以通过单个线程处理请求,并通过调用阻塞IO接口来操作数据。但这种处理方法效率低,扩展性差。半同步和半异步通信框架就是指这种类型。建立链接,异步解析底层协议,然后将其转换为与用户的同步回调接口。大多数HTTP服务器都这样做。

另一种方式称为主动完全异步模式。用户必须使用非阻塞系统调用,任何阻塞调用都将是灾难。用户必须处理数据是否足以进行下一个协议解析或请求处理。当数据不足时,书签处于当前处理状态,并切换到下一个带有数据事件的请求进行处理。这个处理线程可以处理多个甚至所有的请求,基本上没有线程切换或挂起。少数需要非常高性能、采用主动全异步模式的HTTP服务器对应用端开发异步应用也有很高的要求。

回应与响应的区别 请求和要求 get请求报文格式

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。