10分鐘 GET 新技能 - 協程

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章