169it科技资讯


当前位置:  技术问答>linux和unix

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

    来源: 互联网  发布时间:2017-01-12

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

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是如何做到高并发处理的?不胜感激啊

|
我看过源码哦,有疑问来问我哦。
本页相关标签:

    
相关技术文章:
    ▪epoll_wait时产生的"Interrupted system call"

     问题描述如下: 一个Linux进程中有三个线程,分别为A,B,C。 A线程中有epoll的使用,来监听来自其他进程的socket连接。 B线程负责处理来自A线程的连接处理。 C线程是一个定时器Timer线程,这个线程利用signal进行计数,signal使用的具体代码是:  signal(SIGALRM,timer_handle); 当运行进程后,先执行B,C线程,然后再执行A线程。A线程运行中,在运行到epoll_wait函数调用时产生了“Interrupted system call”错误。 测试发现: 1. 如果禁掉C线程(定时器Timer线程),一切就会运行正常。 2.......


    ▪FreeBSD编辑/etc/rc.conf出现permission denied

     用户是root,输入/etc/rc.conf,出现:/etc/rc.conf:permission denied,刚学装,查了很多,还是不知道怎么回事?还有我用pkg_add -r xorg安装x11,总是会停在一个地方不动! | 你要编辑/etc/rc.conf  直接输入/etc/rc.conf怎么行呢?! 要用编辑工具打开 比如用vi 不过你要修改 最好先备份 #cp /etc/rc.conf /etc/rc.conf.bak #vi /etc/rc.conf ......


    ▪ubuntu有无类似redhat中setup这样的命令

     怎么查看有无安装tftp这个软件 | $ dpkg --get-selections | grep tftp | dpkg -L|grep tftp ......


 
最新技术文章:
    ▪用mail发邮件

     我在linux服务器上用mail命令发邮件给单位邮箱(单位windows邮件服务器,公网上可以访问的), echo "asdhfa" | mail -s test geyamin@cc.com 报这个错误 q4A7H10V021474        7 Thu May 10 15:17 <root@localhost.localdomain>                  (Deferred: Connection refused by cclinks.cc.com.) 但是发自己的网易的邮箱就能成功受到邮件 这是什么原因造成的? | 是自己给自己发邮件么?root@localhost.localdomain?本地Sendmail没配置好。 bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail,配置非常麻烦。 通......


    ▪Linux, SVN出现问题

     情况是这样的:        Linux做服务器,我在windows机器上用securecrt连接操作linux系统,一切正常。 问题是:在windows上提交不了代码到Linux系统的svn库,更新整个工程报错:Invalid filesystem path syntax    svn: Target path does not exist  ,单独更新某个页面或者包体,没有问题。 请问这个问题怎么解决? 我已经停止并重启过SVN | svn路径怎么写的?我怀疑你写的svn路径与实际的svn路径不一致。 ......


    ▪Tcpdump如何抓取对方发过来的数据包

     各位大侠,我的主机地址是220.167.255.11(要远程通过telnet登录),与对方通信采集数据的地址是220.167.255.6,端口是10971。请教如何用Tcpdump抓取对方10971端口发给我的数据包?因为是在现网上面,现在不方便测试,请高手指教。请高手详细说明如何抓包(具体命令)?抓下包的如何读取内容? | tcpdump -n port 10971 ......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号