在
00:00秒請求/a
00:01秒請求/b
00:02秒請求/c
會在
00:10秒收到/a的回應
00:11秒收到/b的回應
00:12秒收到/c的回應
然而如果在
00:00秒請求/a
00:01秒請求/a
00:02秒請求/a
會在
00:10秒收到/a的回應
00:20秒收到/a的回應
00:30秒收到/a的回應
也就是說, 對同一個URL的請求是在同一個線程上執行的. 有沒有辦法把對同一個URL的請求分配到不同線程上去?
1
reorx Jul 6, 2012
这就是阻塞(blocking)的特性,同一时间同一个url,只能对一个请求进行处理。就像一个窗口柜台,每次只能办理一个业务,而请求就像排队等候的人。
Flask我不了解,但Tornado自带对非阻塞请求处理的支持。似乎对于大部分web框架来说这一点都是软肋。 |
2
013231 OP 這個問題已經解決了. 我的推斷是錯誤的, 被阻塞的不是服務器, 是瀏覽器. 根據我的測試:
Chrome瀏覽器中, 如果兩個請求的協議\服務器\端口\路徑都相同, 那麼在前一個請求完成前, 後一個請求根本不會發出去. Firefox瀏覽器中, 如果兩個請求的協議\服務器\端口\路徑\參數都相同, 那麼在前一個請求完成前, 後一個請求根本不會發出去. Safari瀏覽器中未發現阻塞現象. |