通过gevent实现socket的多并发server 端:import geventfrom gevent import socket, monkeymonkey.patch_all() #进行IO标记def server(port): s = socket.socket() s.bind(('lo ...
分类:
编程语言 时间:
2018-06-11 00:30:03
阅读次数:
217
gevent 是一个第三方库,可以很容易的实现遇到io(文件传输)操作时,程序自动跳转到下一个程序 例一: 用gevent.sleep() 来模拟io操作 ...
分类:
其他好文 时间:
2018-06-10 22:59:32
阅读次数:
373
关于gevent的一些理解(一) Python并发编程协程(Coroutine)之Gevent详解 ...
分类:
其他好文 时间:
2018-06-10 22:59:23
阅读次数:
194
1.创建多个进程 multirocesing2.输出当前的 进程PID3.进程Queue 实现进程之间的通讯4.管道pip 实现进程之间的通讯5.进程之间列表和字典的传递, 通过manage.dict(), manage.list() 生成的字典和列表6.lock 在进程中加入锁,防止输出时出现错乱 ...
分类:
其他好文 时间:
2018-06-10 21:36:08
阅读次数:
213
阶段大纲: 一.爬虫 1.基本操作 —登录任意网站(伪造浏览器的任何行为) 2.性能相关 —并发方案: —异步IO:gevent/Twisted/asyncio/aiohttp —自定义异步IO 模块 —IO多路复用:select 3.Scrapy框架 介绍:异步IO:Twisted —基于scra ...
分类:
其他好文 时间:
2018-06-07 22:54:22
阅读次数:
202
协程是用户态的线程,并非真正意义上的线程, 协程只有一个线程,看起来并发的效果是因为它利用了寄存器的上下文切换, 多线程和多进程比较消耗cpu资源,当遇到修改数据的时候,还会遇到死锁的问题。 协程是最大的发挥了cpu的单核能力,遇到io阻塞就切换,阻塞完成之后切换回来。 协程的好处: 跨平台 跨体系 ...
分类:
其他好文 时间:
2018-06-03 21:29:52
阅读次数:
209
from gevent import monkey;monkey.patch_all() import gevent import time def eat(name): print('%s eat 1' % name) time.sleep(3) print('%s eat 2' % name) ... ...
分类:
编程语言 时间:
2018-06-02 12:55:49
阅读次数:
152
1.协程 3.python的greenlet模块。 3.1 greenlet的简单实例。 4.python的Gevent模块。 4.1 gevent的简单实例 5.协程实现一个简单爬虫 并对比,串行和并行的执行时间。 6.利用协程实现socket多并发。 6.1 client.py 6.2 serv ...
分类:
编程语言 时间:
2018-05-29 18:59:40
阅读次数:
144
现在多进程多线程已经是老生常谈了,协程也在最近几年流行起来。python中有协程库gevent,py web框架tornado中也用了gevent封装好的协程。本文主要介绍进程、线程和协程三者之间的区别。 一、概念 1、进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进 ...
分类:
编程语言 时间:
2018-05-23 12:29:43
阅读次数:
225
import gevent from gevent import monkey import requests,time,re,os """ 协程爬虫的意义在于解决堵塞的耗时操作,epoll机制不过用gevent好像不错,先来看下gevent的概念 其原理是当一个greenlet遇到IO(指的是in ...
分类:
其他好文 时间:
2018-05-19 21:30:14
阅读次数:
240