【python】gevent協程例子
阿新 • • 發佈:2017-06-29
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協程例子