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

【python】gevent协程例子

时间:2017-06-29 11:21:13      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:log   div   odi   结果   readline   port   open   color   env   

说在前面:用协程还是多线程需要仔细考量。我在做实验时请求了100w个ip,分别用pool为1000的协程和64个线程来跑,结果是多线程的速度是协程的10倍以上。

 

一个简单的协程例子

#!/usr/bin/env python
#coding=utf-8

from gevent import monkey; monkey.patch_socket()
import gevent.pool
import gevent

def do_something(ip):  #在io时协程自动切换
    #request ip
    pass
    
def main():
    pool = gevent.pool.Pool(1000)
    f = open("a_lot_of_ip.json", "r")
    g = []
    for d in f.readlines():
        ip = d
        pool.add(gevent.spawn(do_something, ip))
    f.close()
    pool.join()
    
if __name__ == "__main__":
    main()

 

【python】gevent协程例子

标签:log   div   odi   结果   readline   port   open   color   env   

原文地址:http://www.cnblogs.com/dplearning/p/7093175.html

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