论事件驱动与异步IO 原文:http://www.cnblogs.com/alex3714/articles/5248247.html常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; ( ...
分类:
编程语言 时间:
2017-07-02 11:39:42
阅读次数:
172
原文http://www.cnblogs.com/alex3714/articles/5876749.html 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的networ ...
分类:
编程语言 时间:
2017-07-02 11:39:12
阅读次数:
204
首先列一下,sellect、poll、epoll三者的区别 select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续 ...
分类:
编程语言 时间:
2017-07-02 11:36:38
阅读次数:
142
一:什么是协程 协程(Coroutine):协程是一种用户态的轻量级线程。协程拥有自己的寄存器上下文和栈。 协程调度切换时,将寄存器上下文和栈保存在其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈 因此:协程能保留上一次调用的时的状态,每次过程重入时,就相当于进入上一次调用的。 换种说法:进 ...
分类:
编程语言 时间:
2017-07-01 20:08:05
阅读次数:
250
1、变量和数据类型 1.1变量 1.每个变量都存储了一个值——与变量相关联的信息。 2.变量不仅可以为整数或浮点数,还可以是字符串,可以是任意数据类型。 1.1.1变量的命名和使用 变量名只能包含字母、数字和下划线,且数字不能打头。变量名不能包含空格,但可以使用下划线间隔。不能把python关键字和 ...
分类:
编程语言 时间:
2017-06-29 20:31:15
阅读次数:
209
一:进程池 进程池内部维护一个进程序列,当使用时,则去进程池中获取一个进程, 如果进程池序列中没有可供使用的进进程,那么程序就会等待,直到进程池中有可用进程为止。 进程池中有两个方法: apply apply_async 二:代码示例 有join代码和结果 没有join代码,主进程执行完直接退出了, ...
分类:
编程语言 时间:
2017-06-25 21:22:43
阅读次数:
267
一:进程间数据交换方法 不同进程间内存是不共享的,要想实现两个进程间的数据交换,可以用以下方法: 1)Queue,使用方法跟threading里的queue差不多 ...
分类:
编程语言 时间:
2017-06-25 17:43:25
阅读次数:
201
一:线程queu作用 Python中,queue是线程间最常用的交换数据的形式。 队列两个作用:一个是解耦,一个是提高效率 二:语法 1)队列的类 优先级队列的构造函数。maxsize可以放置在队列中的项的最大个数。 一旦达到这个大小,插入将阻塞,直到队列项被消耗。maxsize值为小于等于0,表示 ...
分类:
编程语言 时间:
2017-06-25 15:29:09
阅读次数:
217
一:线程event作用 Python提供了Event对象用于线程间通信,它是线程设置的信号标志,如果信号标志位真,则其他线程等待直到信号结束。 Event对象实现了简单的线程通信机制,它提供了设置信号,清楚信号,等待等用于实现线程间的通信。 官方解释 event是一个简单的同步对象;event表示内 ...
分类:
编程语言 时间:
2017-06-25 11:13:33
阅读次数:
125
一:socketserver简化了网络服务器的编写。 它有4个类:TCPServer,UDPServer,UnixStreamServer,UnixDatagramServer。 这4个类是同步进行处理的,另外通过ForkingMixIn和ThreadingMixIn类来支持异步 class soc ...
分类:
编程语言 时间:
2017-06-18 16:48:34
阅读次数:
210