zoukankan      html  css  js  c++  java
  • libevent学习三(Getting an event_base)

    1.一个event_base持有了一系列的事件,并监控和决定哪些事件需要激活,
    2.每一个event_base背后都有一个支持其工作的方法(诸如select,poll,epoll,kquene...),默认情况会选择最快的方法,可以自定义设置
    3.event_base可以被设置为lock状态,这样多个线程可以并发安全访问,但是其事件循环只能运行在一个线程当中。如果多个线程需要检查io事件,那么必须要每个线程一个event_base.
     
     
    struct event_base *event_base_new(void);
    struct event_config *event_config_new(void);
    struct event_base *event_base_new_with_config(const struct event_config *cfg);
    void event_config_free(struct event_config *cfg);
    int event_config_set_num_cpus_hint(struct event_config *cfg, int cpus)
    int event_config_set_max_dispatch_interval(struct event_config *cfg,const struct timeval *max_interval, int max_callbacks,int min_priority);
    const char **event_get_supported_methods(void);
    const char *event_base_get_method(const struct event_base *base);
    enum event_method_feature event_base_get_features(const struct event_base *base);
    void event_base_free(struct event_base *base);
    int event_base_priority_init(struct event_base *base, int n_priorities);
    int event_base_get_npriorities(struct event_base *base);
    //调用了fork或其他相关函数,又需要继续使用event_base,则需要重新初始化
    int event_reinit(struct event_base *base);
     
     
    example:
     
    #include <stdio.h>
     
    #include <event2/event.h>
     
    int main()
    {
         struct event_base * pBase =  event_base_new();
         printf("libevent version %s ",event_get_version());
         const char **p = event_get_supported_methods();
         while( *p != NULL)
         {
            printf("%s ",*p);
            ++p;
         }
     
         struct event_config * pec=event_config_new();
         event_config_avoid_method(pec,"select");
         event_config_require_features(pec,EV_FEATURE_ET);
         struct event_base * pbase2=event_base_new_with_config(pec);
     
         event_config_free(pec);
         event_base_free(pBase);
     
         return 0;
    }
  • 相关阅读:
    <!内容//>请问在CSS里面,这个符号是什么 意思?
    java.sql.Timestamp;
    struts做开发的时候action是继承Action方法还是ActionSupport方法
    @Autowired的用法和作用
    JavaScript方法和技巧大全
    Spring@Autowired注解与自动装配
    关于Class File Editor Source not found
    程序员:各种快捷键的用法及掌握 .
    Struts2的Preparable接口 .
    测试
  • 原文地址:https://www.cnblogs.com/manziluo/p/5789633.html
Copyright © 2011-2022 走看看