1. 程式人生 > >【python】gevent協程例子

【python】gevent協程例子

pre bsp req port lines monkey for 簡單 簡單的

說在前面:用協程還是多線程需要仔細考量。我在做實驗時請求了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協程例子