+ -
当前位置:首页 → 问答吧 → Linux 下libevent如何实现高并发处理的?

Linux 下libevent如何实现高并发处理的?

时间:2011-10-31

来源:互联网

新手,了解了一下libevent库,参考网上写了个例子,大概的libevent的函数如下:
C/C++ code

struct evhttp *http_server = NULL;

  event_init();
  http_server = evhttp_start(app_config.addr, app_config.port);
  if (http_server == NULL) {
      kill(0, SIGTERM);
      exit(-1);
  }
  
  fprintf(stdout, "app listen on %s:%d\n", app_config.addr, app_config.port);
  
  evhttp_set_timeout(http_server, app_config.timeout);
  evhttp_set_gencb(http_server, generic_request_handler, NULL);

  event_dispatch();
  evhttp_free(http_server);




这么简单就可以了。


这样只是一个进程而已,就能达到高并发处理了?

难道libevnet里面的机制是多线程?高手指导一下,libevent是如何做到高并发处理的?不胜感激啊

作者: program2050   发布时间: 2011-10-31

多线程,管道通知新连接,event per thread。

作者: qq120848369   发布时间: 2011-10-31