10分鐘 GET 新技能 - 協程
1. 協程 是什麼?
協程
即 Coroutine,又稱微線程、纖程。單進程的異步編程模型稱爲協程。
2. 協程 的基本規則
由於IO過於耗時,協程可以在IO發生時把資源交給其他協程使用,IO結束時收回資源供自己使用。
3. Python 流行庫 gevent 中使用 協程
from gevent import monkey;
monkey.patch_all()
import gevent
import urllib2
def f(url):
print('GET: %s' % url)
resp = urllib2.urlopen(url)
data = resp.read()
print('%d bytes received from %s.' % (len(data), url))
gevent.joinall([
gevent.spawn(f, 'https://www.httpbin.org/get?a=1'),
gevent.spawn(f, 'https://www.httpbin.org/get?a=2'),
gevent.spawn(f, 'https://www.httpbin.org/get?a=3')
])
打印結果是:
GET: https://www.httpbin.org/get?a=1
GET: https://www.httpbin.org/get?a=2
GET: https://www.httpbin.org/get?a=3
263 bytes received from https://www.httpbin.org/get?a=3.
263 bytes received from https://www.httpbin.org/get?a=2.
263 bytes received from https://www.httpbin.org/get?a=1.
版權聲明:轉載必須註明本文轉自 East196 的博客:http://blog.csdn.net/east196