码迷,mamicode.com
首页 > 编程语言 > 详细

python并发编程-gevent使用大全

时间:2020-01-26 17:38:57      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:auth   odi   爬虫   monkey   模块   env   lock   mon   lis   

一、gevent实现某函数异步并发

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
# Date: 2019/11/30
# Author: SunXiuWen
"""pip install -i https://pypi.douban.com/simple/ gevent"""
import time
import gevent
from gevent import monkey
monkey.patch_all()


def task(i):
    time.sleep(3)
    print(i)


def work():
    g_list = [gevent.spawn(task, i) for i in range(10)]
    gevent.joinall(g_list)
    return [i.value for i in g_list]


if __name__ == '__main__':
    start = time.time()
    ret = work()
    end = time.time() - start
    print(ret, '\n', end)

    """结论:
    如果不配置monkey,则是阻塞状态,要花费30秒左右,且导入gevent模块必须在一个模块中
    """

工作应用:如爬虫,下载是一个函数f1,解析是一个函数f2,都通过spawn住,然后通过gevent.joinall([gevent.spawn(f1),gevent.spawn(f2)])从而实现协程并发!

python并发编程-gevent使用大全

标签:auth   odi   爬虫   monkey   模块   env   lock   mon   lis   

原文地址:https://www.cnblogs.com/sunxiuwen/p/12234340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!