
服务器开发
nanjunxiao
这个作者很懒,什么都没留下…
展开
-
socket阻塞与非阻塞、同步与异步概念
看了不少文章,发现socket阻塞、非阻塞、同步、异步概念讲的比较混乱,甚至混用比如非阻塞和异步。看了Unix网络编程 五种I/O模型 感觉讲的比较清晰,现总结下,方便自己记忆理解。本人菜鸟一枚,如果哪里说得有误欢迎拍砖指正,在此谢过。阻塞与非阻塞阻塞与非阻塞IO区别在于应用进程的调用是否立即返回。对于阻塞IO当应用进程调原创 2013-06-20 17:27:59 · 1092 阅读 · 0 评论 -
libuv 与 libev 的对比
libuv是异步的,libev是同步的多路IO复用。libev 是系统IO复用的简单封装,基本上来说,它解决了 epoll ,kqueuq 与 select 之间 API 不同的问题。保证使用 livev 的 API 编写出的程序可以在大多数 *nix 平台上运行。但是libev 的缺点也是显而易见,由于基本只是封装了 Event Library,用起来有诸多不便。比如accept原创 2013-06-09 16:59:55 · 11321 阅读 · 2 评论 -
socket阻塞与非阻塞、同步与异步,五种I/O模型总结
socket阻塞与非阻塞,同步与异步1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B转载 2013-06-06 15:46:23 · 2197 阅读 · 0 评论 -
Linux socket编程-最简单的服务器和客户端程序
转载自:http://blog.youkuaiyun.com/yangliuy/article/details/7420770复习了一下Linux socket编程,写了最简单的服务器和客户端程序,测试通过,其中服务器端程序采用循环忙等待,后面会改成多线程及线程池机制服务器端程序[cpp] view plaincopy#include #转载 2013-06-20 20:54:10 · 853 阅读 · 0 评论 -
惊群现象
今天再看nginx架构发现了它也存在惊群现象,之前师兄的socks5代理服务器同样存在着惊群现象。惊群(thundering herd)是指,只有一个子进程能获得连接,但所有N个子进程却都被唤醒了,这种情况将使性能受损。nginx架构如上图所示,每个worker都是从master fork过来,在master里先建立好需listen的socket之后,然后fork出多个wo原创 2013-06-20 21:25:51 · 6834 阅读 · 1 评论