use*_*343 3 multithreading libevent
我有一些关于libevent2及其多线程支持的问题.
libevent是否支持多个线程?我想要实现的是这样的:
是不是可以用libevent做这样的事情?或者还有其他方法来支持多核吗?
非常感谢你
如果你添加evthread_use_pthreads();你必须有-levent_pthreads
例:
gcc chat.c -o chat -levent -lpthread -levent_threads
Run Code Online (Sandbox Code Playgroud)
和:
$> 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
Run Code Online (Sandbox Code Playgroud)
您需要一些线程池支持.从2.0.x开始,Libevent现在没有内置其中一个,但它可能在未来.
您可能希望了解一些建议的扩展.Mark Ellzey有一个名为"libevthr"的库,他在libevhtp中用于线程池.您可以在libevhtp存储库中找到它.Mark Heily有一个建议的补丁来添加一个EV_PARALLEL标志,让Libevent使用libpthread_workqueue. 它出现在libevent-users邮件列表中.
如果这些都不适合你,你可以通过选择你喜欢的任何工作队列实现来自己完成,并编写一个Libevent回调来自动为另一个线程排队真正的回调.
| 归档时间: |
|
| 查看次数: |
7431 次 |
| 最近记录: |