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 协程例子
来源: http://www.bubuko.com/infodetail-2143633.html