关于libevent2及其多线程支持,我有几个问题。
libevent支持多线程吗?我想要达到这样的目标:
有可能用libevent这样做s.th吗?或者还有其他方法来支持多核呢?
非常感谢
发布于 2012-02-16 03:48:37
您需要对线程池的一些支持。到了2.0.xLibeventt,目前还没有内置其中的一个,但将来可能会有。
您可能需要研究一些建议的扩展。Mark有一个名为"libevthr“的库,用于libevhtp中的线程池。你可以找到在libevhtp存储库中。。Mark有一个建议的修补程序来添加一个EV_PARALLEL标志,让Libevent使用libpthread_workqueue。它出现在这里的libevent-用户邮件列表上。
如果这两种方法都不适合您,您可以自己选择任何您喜欢的工作队列实现,并编写一个Libevent回调来自动将您真正的回调排队到另一个线程。
发布于 2013-05-14 02:59:53
如果添加evthread_use_pthreads();,则必须有-levent_pthreads
示例:
gcc chat.c -o chat -levent -lpthread -levent_pthreads以及:
$> 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.ahttps://stackoverflow.com/questions/9153528
复制相似问题