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

还有,epollaio之间有什么区别?它们是如何结合在一起的?

最后,我读过很多次,Linux中的AIO被严重 destruct .它到底是怎么坏的?

谢谢

推荐答案

事件是实现异步执行的范例之一.

epoll和aio使用不同的隐喻:

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

在AIO中,您将回调函数(完成 routine )的地址传递给系统,系统在发生某些事情时调用您的函数.

AIO的问题是,回调函数代码在系统线程上运行,等等,在系统堆栈的顶部运行.正如你所能想象的那样,这有一些问题.

Linux相关问答推荐

无法下载Centos 7上的存储库的元数据

X86_64程序集中的分段故障:系统调用问题

如何知道进程组中的所有进程是否都已收集?

条件句if的正确写法是怎样的?

std::chrono::time_zone 在不同操作系统上不可用

BASH:在curl输出的每一行添加前缀

如何将一个变量的 2 行添加到另一个变量的特定行?

在具有不同文件类型的文件夹中编辑多个 xml 文件 - 使用预定顺序

ln命令报错target not a directory

将特定列转换为行

命令应在终端关闭后继续运行

使用 sed 或 awk 在 linux 中将第一行中的一个单词替换为第二行中的另一个单词

Bash shift 改变了关联数组的期望值

错误:命令gcc在 CentOS 上失败,退出状态为 1

如何在非阻塞套接字上处理 OpenSSL SSL_ERROR_WANT_READ / WANT_WRITE

让 sudo 和 nohup 一起工作

如何从 Linux 中的用户空间访问物理地址?

如何将路径名中的..转换为 bash 脚本中的绝对名称?

在 Unix 上计算每行/字段的字符出现次数

如何始终以 GB 为单位获取 df linux 命令输出