在libevent
我已經添加下面的代碼?在libevent的使用EVLOOP_NONBLOCK
回答
沒有,event_base_dispatch(base)
調用等效於event_base_loop(base, 0)
,這意味着它既不首批事件(如event_base_loop
與EVLOOP_ONCE
一樣)後停止,也沒有立即返回如果沒有事件準備(如event_base_loop
與EVLOOP_NONBLOCK
一樣) 。
您可能需要閱讀libevent的偉大的書由尼克·馬修森寫:http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html
感謝雷米。我想在事件循環中做一些事情,所以我嘗試使用'while(run)event_base_loop(base,EVLOOP_NONBLOCK | EVLOOP_ONCE)'而不是'event_base_dispatch(base)'。這是否有效率問題或其他風險? – name5566 2013-03-13 01:47:38
在event_base_loop上循環(base,EVLOOP_NONBLOCK | EVLOOP_ONCE)效率稍低,僅執行event_base_dispatch()。我可以問你想做什麼嗎?您是否嘗試過使用計時器事件或使用event_base_loopbreak()? – 2013-03-13 09:35:06
我有一個網絡線程和一個用戶線程,網絡線程調用事件循環的event_base_loop(細節:while(run){event_loop; MyUpdate();}')。我嘗試在用戶線程中調用函數'bufferevent_socket_connect',但它不工作(不是線程安全的?)。所以,我這樣做:用戶線程:將連接請求推送到請求緩衝區;網絡線程:1.循環請求緩衝區2.獲取連接請求3.調用buffervent_socket_connect進行連接。 – name5566 2013-03-14 07:02:03
- 1. LIBEVENT使用過多的CPU
- 2. libevent,在
- 3. libevent和libevent-dev之間的區別
- 4. 使用libEvent的高性能服務器
- 5. 使用libevent的異步Redis池合
- 6. 我可以使用curl_multi/multi_socket與libevent
- 7. 如何將libusb與libevent一起使用?
- 8. libevent evhttp和ipv6
- 9. Libevent HTTP Server&壓縮?
- 10. libevent中的用戶觸發事件
- 11. 監視couchbase桶的libevent
- 12. 與libevent的多進程php
- 13. 使用libevent的evhttp服務器打開的文件太多
- 14. 如何在libevent中共享回調
- 15. 在centos6上編譯。 libevent問題
- 16. 無法安裝libevent-devel
- 17. Libevent多線程支持
- 18. Libevent超時循環退出
- 19. libevent,windows和.NET編程
- 20. Libevent + Comet(Long-Polling/Http-Stream)
- 21. 是否libevent支持netlink socket
- 22. libevent的火災時,它receveives包
- 23. 文件刪除/修改期間的libevent
- 24. libevent中EV_TIMEOUT的含義是什麼?
- 25. 構建Windows的memcached需要libevent嗎?
- 26. libevent 2.0.19 - 奇怪的evbuffer_copyout最終simbols
- 27. java.nio vs libevent使用大量的http請求時要選擇什麼?
- 28. 有效的preforked服務器設計與NBIO像epoll,kqueue使用libevent
- 29. libevent中的應用程序驅動事件
- 30. Libevent 2.0.22項目編譯問題(OSX)
你是什麼意思是這些語句相等? – 2013-03-12 09:59:45
由於某種原因,我想將'event_base_dispatch(base)'更改爲'event_base_loop(base,EVLOOP_NONBLOCK | EVLOOP_ONCE)',但我無法評估風險。 – name5566 2013-03-12 11:36:08