ieee公布的2017年编程语言排行榜,python高居首位。在百度指数上,python的搜索量也跻身到与java相等的量级,成为最火的语言之一。
首先,看看哪些公司在用python作为服务器的主要技术栈?可以看到,其中不缺乏一些用户量庞大的公司。
得益于语言的简洁性,python很适合用来进行快速开发,编写出可读性强的程序。那么怎么用python来做服务器编程呢?
从一个例子说起...
但多进程模型处理不好会出现僵尸进程和孤儿进程,因此父进程需要处理sigchild信号来收集退出的子进程的信息。
所以cgi不仅慢...
而且
甚至
后来出现了fastcgi,它与cgi的区别,就是更fast(误),它是一个常驻进程,预先启动多个cgi进程来等待处理请求。
应用wsgi协议的一个示例:
绝大部分的python web开发框架都遵守了这套标准:
gunicorn是一个著名的wsgi http服务器,它采用pre-fork模型来处理和转发请求。
gunicorn包含许多种worker模型:(原图出处)
抛开多进程,现在来看多线程的模型,该方案用线程代替进程来处理每一个请求:
这就要说到python中的gil了,由于gil的制约,多线程很难充分利用cpu的性能
话虽如此,多线程在io密集型应用上还是有不少用武之地的。下面是多线程在服务器编程的其中一些应用
这时候更适合服务器编程的io多路复用模型开始被广泛应用:
基于事件驱动的异步模型对服务器的资源的有效利用率显然易见(原图出处)
衍生了大量的异步网络框架
总的来说,服务器编程经历了从开始的简单到后来的复杂化最终慢慢演变到简单的方式上。
原出处
如侵权请告知我们