上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 22 下一页
  2017年8月16日
摘要: 1。 Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时变成readable 和writeable, 或者通信错误,select()使得同时监控多个连接变的简单,并且这比写一个长循 阅读全文
posted @ 2017-08-16 15:53 momo8238 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 论事件驱动与异步IO 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求; (2)每收到一个请求,创建一个新的线程,来处理该请求; (3)每收到一个请求,放入一个事件列表,让主进程通过非阻塞I/O方式来处理请求。(启动一个协程) 上面的几种方式 阅读全文
posted @ 2017-08-16 14:01 momo8238 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 1. 通过Gevent实现单线程下的多socket并发。 server 端: Client 端: 运行结果:实现了并发 2. 阅读全文
posted @ 2017-08-16 11:53 momo8238 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 1.简单爬虫 运行结果: 2.爬多个网页 运行结果: 3.测试运行时间: 运行结果:通过时间看到也是串行运行的。gevent默认检测不到 urllib 进行的是否是io操作。 4.同步与异步的时间比较: 运行时间:几乎差不多,看不出异步的优势。 5.因为gevent默认检测不到 urllib 进行的 阅读全文
posted @ 2017-08-16 11:33 momo8238 阅读(176) 评论(0) 推荐(0) 编辑
摘要: Gevent: Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet, 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程序操作系统进程的内部,但它们被协作式地调度。在greenlet 中用sw 阅读全文
posted @ 2017-08-16 10:53 momo8238 阅读(212) 评论(0) 推荐(0) 编辑
摘要: yield()是自己写的协程,Greenlet( )是已经封装好了的协程。 协程:遇到 I/O 操作就切换到别的地方了(先去处理其他携程去了)。等原协程的 I/O 操作一完成就切回去。这样就把 I/O的时间给节省出来了。 Greenlet:手动挡 gevent: 自动挡 运行结果: 阅读全文
posted @ 2017-08-16 06:34 momo8238 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。 线程切换的时候会保存到CPU里面。 因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态,换种说法:进入上 阅读全文
posted @ 2017-08-16 06:21 momo8238 阅读(200) 评论(0) 推荐(0) 编辑
  2017年8月15日
摘要: 协程 1. 协程,又称微线程,纤程。协程是用户自己控制的,CPU根本不知道协程的存在,CPU只认识线程。 2. 线程切换的时候,会保存在CPU的寄存器里面。 协程切换的时候,却都是由用户自己的实现的。 3。在单线程下实现并发的效果,就是通过协程来完成的。例如yield() 英文名Coroutine。 阅读全文
posted @ 2017-08-15 15:31 momo8238 阅读(245) 评论(0) 推荐(0) 编辑
摘要: if __name__=='__main__' : 为了区分你是主动执行这个脚本,还是从别的地方把它当做一个模块去调用。 如果是主动执行,则执行。如果是调用的,则不执行主体。 里面存放的可能是一些测试模块。 可以通过用print(__name__) 来测试 __name__ 是否等于 __main_ 阅读全文
posted @ 2017-08-15 08:11 momo8238 阅读(87) 评论(0) 推荐(0) 编辑
  2017年8月14日
摘要: if __name__=='__main__' : 为了区分你是主动执行这个脚本,还是从别的地方把它当做一个模块去调用。 如果是主动执行,则执行。如果是调用的,则不执行主体。 1. 串行:切记切记:pool.close()必须在pool.join() 之前。 运行结果: 2. 5个一组并行执行 运行 阅读全文
posted @ 2017-08-14 17:22 momo8238 阅读(358) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 22 下一页