首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libevent多线程支持

Libevent多线程支持
EN

Stack Overflow用户
提问于 2012-02-05 22:09:55
回答 2查看 10.2K关注 0票数 4

关于libevent2及其多线程支持,我有几个问题。

libevent支持多线程吗?我想要达到这样的目标:

  1. 在一个线程中创建一个event_base。
    • 在此单个线程设置事件中,并将它们与事件库关联。还为每个观察到的事件注册回调。

  1. 一旦观察到事件发生,就在其他(Worker)线程中执行已注册的回调。

有可能用libevent这样做s.th吗?或者还有其他方法来支持多核呢?

非常感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-16 03:48:37

您需要对线程池的一些支持。到了2.0.xLibeventt,目前还没有内置其中的一个,但将来可能会有。

您可能需要研究一些建议的扩展。Mark有一个名为"libevthr“的库,用于libevhtp中的线程池。你可以找到在libevhtp存储库中。。Mark有一个建议的修补程序来添加一个EV_PARALLEL标志,让Libevent使用libpthread_workqueue。它出现在这里的libevent-用户邮件列表上。

如果这两种方法都不适合您,您可以自己选择任何您喜欢的工作队列实现,并编写一个Libevent回调来自动将您真正的回调排队到另一个线程。

票数 7
EN

Stack Overflow用户

发布于 2013-05-14 02:59:53

如果添加evthread_use_pthreads();,则必须有-levent_pthreads

示例:

代码语言:javascript
复制
gcc chat.c -o chat -levent -lpthread -levent_pthreads

以及:

代码语言:javascript
复制
$> ls /usr/lib/libevent*.a
/usr/lib/libevent.a  /usr/lib/libevent_core.a  /usr/lib/libevent_extra.a  /usr/lib/libevent_openssl.a  /usr/lib/libevent_pthreads.a
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9153528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档