当前位置: 首页 > 面试题库 >

事件驱动和异步之间有什么区别?在epoll和AIO之间?

潘璞瑜
2023-03-14
问题内容

事件驱动和异步通常用作同义词。两者之间有什么区别吗?

另外,epoll和之间有什么区别aio?它们如何配合在一起?

最后,我读过很多遍了,Linux中的AIO被严重破坏了。它到底有多坏?

谢谢。


问题答案:

事件是实现异步执行的范例之一。但是,并非所有异步系统都使用事件。那是关于这两个的语义含义-一个是另一个的超实体。

epoll和aio使用不同的隐喻:

epoll是一个阻塞操作(epoll_wait())-阻塞线程直到发生某些事件,然后将事件分派到代码中的不同过程/函数/分支。

在AIO中,您将回调函数的地址(完成例程)传递给系统,并且在发生某些情况时系统会调用您的函数。

AIO的问题是您的回调函数代码在系统线程等系统堆栈上运行。您可以想象的一些问题。



 类似资料:
  • java nio select的代码和linux epoll的代码看起来是一样的。没有循环来获取套接字fd,linux选择代码片段确实使用循环来获取套接字fd。 所以我的问题是,java nio select和linux epoll的方式相同吗? java nio选择 linux e轮询 linux选择

  • 问题内容: 我一直使用该事件,但是在阅读jQuery文档时发现了。它们的功能似乎完全相同。 两者之间有区别吗?如果是,我什么时候应该使用它们? (也适用于vs )。 问题答案: 您可以从jQuery文档页面尝试以下示例。这是一个很好的互动演示,非常清楚,您可以自己看到。 简而言之,您会注意到,当鼠标悬停在元素上时,该元素上会发生鼠标悬停事件-来自其子元素或父元素,但是仅当鼠标从该元素外部移至该元素

  • 问题内容: : 在将所有数据加载到网格中并完成所有其他过程之后,将触发此事件。同样,事件会与datatype参数无关并在对分页等进行排序后触发。 : 每个服务器请求后立即执行此事件。数据来自响应的数据取决于数据类型网格参数 从该文档中,我了解到在绘制网格的末尾触发,并在jqGrid完成与后端的通信后触发。 因此,我想知道-为什么在演示中用于更改单元格的颜色而不使用? 问题答案: 我认为这个问题是j

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • 问题内容: 如何区分Java中的错误和异常? 问题答案: 错误“表示合理的应用程序不应尝试捕获的严重问题”。 而 异常“指示合理的应用程序可能想要捕获的条件”。 错误及其子类都是例外。所有其他异常类都是异常。 检查 异常通常是程序可以从中恢复的异常,最好以编程方式从此类异常中恢复。示例包括,等。希望程序员使用try- catch块检查这些异常,或者将其扔回调用方。 另一方面,我们有 未经检查的 异

  • 问题内容: 我一直在阅读nodebeginner, 并且遇到了以下两段代码。 第一个: 第二个: 我得到了他们应该做的事情,他们查询数据库以检索查询的答案。然后。 第一个应该是同步代码。第二个是异步代码。 这两部分之间的区别对我来说很模糊。输出是什么? 搜寻异步编程也无济于事。 问题答案: 区别在于,在第 一个示例中 ,程序将在第一行中阻塞。下一行()必须等待。 在 第二个示例中 ,将在处理查询时