【问题标题】:What is the implementation detail of libevent? An encapsulation of poll mechanism?libevent 的实现细节是什么?轮询机制的封装?
【发布时间】:2016-01-08 02:49:52
【问题描述】:

libevent 由于事件通知和回调函数的支持,为程序员提供了编写异步程序的能力。我不知道 linux 内核是否提供这样的系统调用来在特定事件发生时通知用户空间应用程序。当人们使用非阻塞操作时,他们必须轮询所有文件描述符以检查其中一些是否准备好。但是,我认为 libevent 可能会利用其他一些先进的手段来完成这项任务,例如带有一些未知的系统调用。

那么,1) libevent 如何检查不同事件的状态?通过轮询或其他机制? 2) libevent 在运行时会分叉线程的子进程吗?

【问题讨论】:

标签: linux implementation libevent


【解决方案1】:

libevent 主页显示(部分),

目前,libevent 支持 /dev/poll、kqueue(2)、event ports、POSIX select(2)、Windows select()、poll(2) 和 epoll(4)。

对于现代 Linux,答案是 epoll。

【讨论】:

    猜你喜欢
    • 2017-03-20
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2015-01-14
    • 1970-01-01
    • 2014-09-06
    相关资源
    最近更新 更多