• 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;
    }
  • 相关阅读:
    ST (Sparse Table:稀疏表)算法
    P3379 【模板】最近公共祖先(LCA)
    AT1357 n^p mod m(洛谷)
    poj2018 Best Cow Fences
    P1024 一元三次方程求解
    poj2456
    poj1064
    P2047 [NOI2007]社交网络(洛谷)
    poj1734
    洛谷P2886 [USACO07NOV]牛继电器Cow Relays
  • 原文地址:https://www.cnblogs.com/manziluo/p/5789633.html
Copyright © 2020-2023  润新知