协程

协程又称为线程,

线程是一个python个中另外一中实现多任务返方式,在一个线程中的某个函数可以理解任何地方保存当前函数中的临时变量的信息,然后再到另一个函数中执行协程和线程差异在多个处理器的情况下,从概念上多线程同时运行多个线程:而协同程序是同过协作来完成的在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只在必要时才会被挂起

简单实现协程from gevent import monkey#导入补丁模块

monkey.patch_all()#创建补丁

import gevent

 import requestfrom queue 

import Queueimport time

#明确url 

base_url='https://hr.tencent.com/position.php?start=%d'#腾讯

def get_page(q):

whilenot q.empty()#判断对象不为空时

    url = q.get#获取队列中的一个

    response=requests.get(url,headers={'User-Agent':'lalala'})#发送请求        

        print(reponse.url)print(time.ctime())#当前时间

        g_list=[]#列表q= Queue()#队列创建

创建任务

foriinrange(0,3800+1,10):

fullurl = base_url/%#将内容插入链家

q.put(fullurl)

#多少个基层

for iinrange(100); 

 g = genent.spawn(get_page,q)#创建协程

g_list.append(g)#将协程对象添加到列表中

# for i in g_list:#遍历状态

# i.join()#等待当前协程执行完毕,在继续执行

gevent.joinall(g_list)#等待所有协程执行完毕

print(time.ctime())#结束时间

greenlet

为了更好使用协程来完成多任务,python中的greenlet模块对其封装,从而使得切换任务变的更加简单

greenlet是一个python的协程管理、切换模块。通过greenlet,你可以显式地在不同的任务之间切换。

gevent.spawn启动的所有协程,都是运行在同一个线程之中,所以协程不能跨线程同步数据。

gevent.queue.Queue 是协程安全的。

python程序实现的一种单线程下的多任务执行调度器,简单来说在一个线程里,先后执行AB两个任务,但是当A遇到耗时操作(网络等待、文件读写等),这个时候gevent会让A继续执行,但是同时也会开始执行B任务,如果B在遇到耗时操作同时A又执行完了耗时操作,gevent又继续执行A。

imort   gevent  

def   test(time)

print(1)

gevent.sleep(time)

print(2)

def  test(time):

print( )

gevent.sleep(time)

print(4)

if__name =='main'

gevent.joinall9[ 

             gevent.spawn(test,2), 

             gevent.spawn(test,3)

])

其中gevent.sleep()是gevent自带的延时,当gevent遇到这个延时时会自动切换,这里用gevent.sleep()代替一些耗时操作

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 协程 阅读目录 一 引子 二 协程介绍 三 Greenlet模块 四 Gevent模块 引子 之前我们学习了线程、...
    go以恒阅读 4,017评论 0 1
  • 一、总体内容 1.1、协程的介绍 1.2、迭代器以及迭代器的应用 1.3、生成器(生成器与迭代器保存的都是生成数据...
    IIronMan阅读 4,292评论 0 1
  • 协程,又称微线程,纤程,协程是一种用户态的轻量级线程 协程是单线程 协程的好处: 1 没有上下文切换 ...
    钱塘阅读 1,774评论 0 2
  • 实体商城倒下来,一个个圈钱的在线商城起来了,换汤不换药,普通的消费者还是在商家的坑里。网易严选的粉丝们,这个价格差...
    樊派宝希阅读 1,651评论 0 0
  • 一,将赚钱目标转移到专注上来。二,将时间聚焦到创业上来。带学生比赛也要开始有转移。否则,创业永远上不了路。 下半年...
    大书没长大阅读 1,124评论 0 0