#!/usr/bin/evn python

# -*- coding:utf-8 -*-

import gevent

from gevent import monkey

import urllib

import urllib.request as request

 

 

""""

1.为什么需要使用协程呢?

从一个业务场景来说吧:比如我们写了一个程序对某个网站的数据进行

抓取数据,如果使用多线程的话,发送多个线程的时候,因为请求会有一段时间是

在等待的,这样一来就显得,资源有点浪费了(N个线程什么都不做就一直在待请求响应)。

如果能够通过一个线程来做的话(即:如果线程中开启了这个请求,但是还是可以去做其他的事(比如

再开一个请求),其实说白协程就是一个并行的操作。都发送请求过去,谁先回来就先处理谁)

"""

 

#这个代码是并行请求的关键

monkey.patch_all()

 

def sendNetWork(urls):

handler=request.ProxyHandler()

 

opener=request.build_opener(handler);

 

response=opener.open(fullurl=urls);

text=response.read()

print(urls+"-----test:"+str(text))

 

gevent.joinall([gevent.spawn(sendNetWork,"http://wwww.baidu.com"),

gevent.spawn(sendNetWork, "https://github.com")

,gevent.spawn(sendNetWork,"http://www.maiziedu.com")

,gevent.spawn(sendNetWork,"http://wwww.baidu.com")])

 

     以上纯属个人见解,如有错误,希望各位大神不吝赐教!

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐