答:用C++如何实现开放API接口服务器?
c++的话,一般用libevent或则libev这种库来实现吧。当然如果对epoll比较熟悉的话 直接用也没问题。
答:求推荐Socket Server 框架
Socket Server框架?如果是IO模型的话,Windows下是IOCP,Linux下是epoll,FreeBSD则是kqueue,至于封装好的框架,比较不错的应该是ACE。
2011-06-15
问:libevent里event_* 函数使用了那种事件模型?
知道libevent支持 select/poll/epoll时间模型。 今天突然想到 封装了libevent底层操作的 event_* 系列函数是使用了那种事件模型呢
2017-04-27✓ 已解决
答:Mac下Clion怎么使用GCC的类库呢?
epoll不是“GCC的类库”,它是Linux专有API,在Mac上无论你用什么编译器都一样用不了的。Mac和FreeBSD有一个类似的功能叫kqueue。
答:IO多路复用 到底是阻塞还是非阻塞
[链接] 文章中说的很清楚select/poll/epoll,一个进程监听多个Socket状态的时候是阻塞的,如果有就绪的Socket就会返回就绪状态,这时候就会从阻塞态转换到正常状态,如果业务处理完成又会回到阻塞态,继续等待下个就绪状态。一个进程接收多个Socket的数据,以免一个Socket对一个进程导致线性资源(内存)开销。select/po...
答:epoll早期使用了mmap, 后面没有用了?
Linux Kernel 不是开源的吗?看内核源码不就得了? 中文技术博客东抄西抄,遇事不决 Google 一下,你看搜 linux epoll mmap 关键词有英文结果吗?
2020-05-08
答:swoole event::wait()方法 干了什么?
底层调用的是 SwooleG.main_reactor->wait ,会不断循环阻塞在 reactor->wait 上,直到有信号或者读写就绪事件触发。
2019-10-12
答:LXC和cgroup之间的关系?
cgroup是一种内核机制,跟epoll, 文件系统quota之类的内核机制同级; lxc是一种基于cgroup内核机制的虚拟化方案,和openvz等虚拟化方案类比。
2013-03-25
问:为什么边缘触发必须使用非阻塞的文件描述符?
一种解释是如果使用阻塞,调用epoll-wait之后,read可能一致阻塞,但是如果水平触发使用阻塞io也可能read一致阻塞啊。
2020-12-04
答:PHP的进程的疑惑
如果没有空闲的worker进程,master进程会把请求分配一个其中一个正常处理其他请求的worker进程,进入到backlog挂起的连接队列里,排队等待处理,默认值为listen.backlog = 128.
答:NodeJS异步机制的疑惑
node的引擎是单线程的没错 但是他底层调用的libuv不是啊 libuv在linux上网络请求用的epoll 文件读取是自己建了个线程池 在windows上面用的iocp
2017-03-10
答:针对epoll和协程的疑问?
这个问题是我提的。经过一段时间的学习,阅读别人的源码,写了一个协程库,现在我来回答一下。希望对有同样问题的同学有所帮助。首先,要实现协程这个东西很简单,网上的例子一大把,但是很多都是停留在对上下文的分析,停留在寄存器的值如何保存。私以为,要让协程好用,还必须要把一系列的阻塞api封装成非阻塞的,并且...
答:web服务器用到的底层技术为什么大多是线程阻塞和多路复用?
epoll 是 linux 2.6 以后才出现的,所以,Nginx 使用了 epoll 模型。所以,Nginx 处理静态文件或者做反代很强行,因为主要是 IO 操作。
2015-07-21
问:epoll_wait偶尔会用很长时间
问题描述 epoll_wait偶尔会用很长时间 问题出现的环境背景及自己尝试过哪些方法 strace 跟踪 相关代码 // 请把代码文本粘贴到下方(请勿用图片代替代码) {代码...} 你期待的结果是什么?实际看到的错误信息又是什么? 已得到答案,感谢韩大大。[链接]
答:linux fork epoll “惊群问题”
首先epoll_wait只会监听被加入epoll_event的套接字和事件。另外一个不同进程间的描述符相同不代表任何含义,因为他们的数据空间是独立的。楼主现在使用的是icmp协议,不存在端口号的对比,所以所有在等待icmp消息的套接字都会收到这个icmp消息。所以所有套接字都是可读的,并不是像楼主说的只有一个socket可读。最后这个...
2016-07-06
问:请问为什么我采用epoll的EPOLLET模式同时监听fd读写的时候,会随机触发 "写" 事件?
1:我采用epoll的EPOLLET模式同时监听fd读写,客户端连接服务器之后只发送数据,按正常情况应该只会触发服务器端的EPOLLIN,但是实际情况却随机触发服务器端的EPOLLOUT。2:我目前测试如果将recv函数的recv_buf大小设置小点(我设置的为4),就不会出现这个问题。而且即使按照我下面代码的1024大小,我要是一条一条发送也...
2016-07-26✓ 已解决