python并发编程-gevent使用大全,,一、gevent实现
python并发编程-gevent使用大全,,一、gevent实现
一、gevent实现某函数异步并发
#!/usr/bin/env python# _*_ coding:utf-8 _*_# Date: 2019/11/30# Author: SunXiuWen"""pip install -i https://pypi.douban.com/simple/ gevent"""import timeimport geventfrom gevent import monkeymonkey.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使用大全
评论关闭