摘要: 1. select 原理 在多路复⽤的模型中, ⽐较常⽤的有select模型和epoll模型。 这两个都是系统接⼝, 由操作系统提供。 当然, Python的select模块进⾏了更⾼级的封装。 ⽹络通信被Unix系统抽象为⽂件的读写, 通常是⼀个设备, 由设备驱动程序提供, 驱动可以知道⾃身的数据 阅读全文
posted @ 2017-11-26 14:50 ninxin18 阅读(2399) 评论(0) 推荐(0) 编辑
摘要: 1.事件驱动模型 上一篇写的协程仅仅是切换,本身不能实现并发,什么时候切换也不知道 那么什么时候切回去呢?怎么确定IO操作完了?通过回调函数 对于事件驱动型程序模型,它的流程大致如下: 开始 >初始化 >等待 事件驱动程序在启动之后,就在那等待,等待什么呢?等待被事件触发。传统编程下也有“等待”的时 阅读全文
posted @ 2017-11-25 23:14 ninxin18 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 1.socketserver模块和类 socketserver是标准库中的一个高级模块,目标是简化很多样板代码(创建网络客户端和服务器所必须的代码) 这个模块封装了socket编程所需要的各种各样的类,现在可以使用类来编写应用程序。 因为以面向对象的方式处理事务有助于组织数据,以及逻辑性地将功能放在 阅读全文
posted @ 2017-11-25 20:46 ninxin18 阅读(2477) 评论(0) 推荐(0) 编辑
摘要: 1 socket 插座?呵呵,想多了,翻译过来意思是套接字! A network socket is an internal endpoint for sending or receiving data at a single node in a computer network. Concrete 阅读全文
posted @ 2017-11-25 17:14 ninxin18 阅读(1346) 评论(0) 推荐(0) 编辑
摘要: 一、一些基本概念: 协程(Coroutine),又称微线程,纤程,一种用户级的轻量级线程。 栈(Stack)是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表。 协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈 阅读全文
posted @ 2017-11-25 12:13 ninxin18 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 对于爬虫,python进行并发抓取的实现方式主要有以下几种:进程,线程,协程。 性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时必然会引起等待,从而使得请求整体变慢。 一 多进程执行 可以实现并发,但是,请求发送出去后和返回之前,中间时期进程空闲 编写方式:1- 多进程直接返回处理 1 阅读全文
posted @ 2017-11-25 10:42 ninxin18 阅读(1369) 评论(1) 推荐(0) 编辑
摘要: 一 多进程编程 Python实现多进程的方式有两种:一种方法是os模块中的fork方法,另一种是使用multiprocessing模块。 前者仅适用于LINUX/UNIX操作系统,对Windows不支持,后者则是跨平台的实现方式。 第一种方式:使用os模块中的fork方式实现多进程 import o 阅读全文
posted @ 2017-11-24 20:24 ninxin18 阅读(3046) 评论(0) 推荐(1) 编辑
摘要: 一.Python中的上下文管理器(contextlib模块) 上下文管理器的任务是:代码块执行前准备,代码块执行后收拾 1、如何使用上下文管理器: 如何打开一个文件,并写入"hello world" filename="my.txt" mode="w" f=open(filename,mode) f 阅读全文
posted @ 2017-11-24 17:32 ninxin18 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 1.IO编程 IO(input/output)。凡是用到数据交换的地方,都会涉及io编程,例如磁盘,网络的数据传输。在IO编程中,stream(流)是一种重要的概念,分为输入流(input stream)和输出流(output stream)。可以把流季节为一个水管,数据相当于水管中的水,但是只能单 阅读全文
posted @ 2017-11-24 15:13 ninxin18 阅读(2631) 评论(0) 推荐(0) 编辑
摘要: 1.冒泡排序(英语:Bubble Sort) 它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下: 比较 阅读全文
posted @ 2017-11-24 10:20 ninxin18 阅读(345) 评论(0) 推荐(0) 编辑