一尘不染

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

linux

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

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

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

谢谢。


阅读 702

收藏
2020-06-07

共1个答案

一尘不染

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

epoll和aio使用不同的隐喻:

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

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

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

2020-06-07