1
我是龍捲風新手。如何創建一個非阻塞函數?
令人興奮的是Coroutines的部分。
所以我嘗試首先將阻塞函數轉換爲非阻塞。
@tornado.concurrent.return_future
def calculate(callback):
start_time = time.time()
res = urllib2.urlopen("https://www.google.com/")
print time.time()-start_time
callback(res)
class MainHandler(tornado.web.RequestHandler):
@tornado.gen.coroutine
def get(self):
start_time = time.time()
res = yield [calculate(), calculate()]
print time.time()-start_time
但我得到:
1.41436505318
1.38487792015
2.80179595947
它的I/O瓶頸,所以我想花應該是接近(1.41436505318)花費的時間越長一次的總時間。 但它似乎阻塞。
所以我想知道怎麼回事?如何將阻塞函數轉換爲非阻塞函數?