摘要:
引言:上篇文章讲到同步阻塞迭代式的进程方式,这篇文章讲述一下关于处理单进程阻塞于系统调用的情况。使用方式是多进程的方式,可以减少很大一部分的因为进程阻塞所带来的服务器无法响应问题。基本思想是这样,如上篇文章所述,在单进程阻塞在read() 系统调用的时候,会导致服务器无法响应其他的连接请求,那么我们可以通过在服务器fork() 出很多子进程来处理业务,而主进程负责 accept() 其他的客户连接。主体框架是这样:for(;;){ fd = accept(...); ret = fork() ; switch( ret ) { case -1 : do_err_handler()... 阅读全文
摘要:
引言:似乎现在阻碍服务端大部分情况下都属于IO瓶颈,硬盘的转速等,而计算的瓶颈大部分云端计算采用分布式计算,如基于GFS的MapReduce模型,网格计算或者其他的一些分布式处理。所以,现在服务端的服务衡量指标基本集中在并发量,QPS,响应速度,稳定性等。其中一部分也不乏大量的计算,属于CPU密集型的,根据业务的不同应该做相应的调整。今天的话题是浅谈一下几种常用的IO模型。理解IO 模型是网络编程的重点。最简单的同步迭代IO模型:核心代码就是这样,这里我们假设前面的监听套接口已建立。即已绑定套接口,并调用了listen()函数。同步迭代IO大致如下,我们假设现在的模型是这样的,服务端监听客户端 阅读全文