0
我有以下的「虛擬服務器」運行:Tornado併發限於6個連接?
import tornado.web
from tornado.ioloop import IOLoop
from tornado import gen
import time
@gen.coroutine
def async_sleep(seconds):
yield gen.Task(IOLoop.instance().add_timeout, time.time() + seconds)
class TestHandler(tornado.web.RequestHandler):
reqnum = 0
@gen.coroutine
def get(self):
reqnum = TestHandler.reqnum
TestHandler.reqnum += 1
for i in range(100):
print(reqnum,end='')
if reqnum == 0 : print()
yield async_sleep(1)
self.write(str(reqnum))
self.finish()
if __name__ == '__main__' :
application = tornado.web.Application([
(r"/test", TestHandler),
])
application.listen(9999)
IOLoop.instance().start()
所以這應該運行罰款噸併發連接,你會覺得......但事實並非如此。啓動服務器並打開16個選項卡,它會得到:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
120
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
314520
這很令人困惑。更令人沮喪的是,正確的結果會打印在所有標籤上,0-15。這是所有輸出到控制檯,但。沒有更多到達。
這是怎麼回事?