event_base_dispatch() 是如何工作的?

Posted

技术标签:

【中文标题】event_base_dispatch() 是如何工作的?【英文标题】:How does event_base_dispatch( ) work? 【发布时间】:2015-06-12 10:26:43 【问题描述】:

event_base_dispatch( ) 函数被调用时,内部会发生什么?是否有创建的线程会一直运行,直到收到停止信号?

【问题讨论】:

【参考方案1】:

event_base_dispatch() 是一个阻塞调用,它在调用该函数的线程的循环内执行您定义的回调。它会继续运行,直到没有更多注册事件或您致电 event_base_loopexit() / event_base_loopbreak()。 见http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html

相当于event_base_loop(event_base, 0)。快速查看源代码后,我没有看到创建任何其他线程:https://github.com/libevent/libevent/blob/master/event.c#L1847

【讨论】:

以上是关于event_base_dispatch() 是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

如何打破 libevent 的调度循环

libevent 回调 是多线程么

在 libevent 中使用 EVLOOP_NONBLOCK

交叉验证是如何执行的以及 GridSearchCV() 具体是如何执行的?

“列表理解”和类似的意思是啥?它是如何工作的,我该如何使用它?

这种排序方法的名称是啥,它是如何工作的,它与 Arrays.sort() 相比如何?