013231
V2EX  ›  Flask

Flask中, 針對同一個URL的請求只能順序執行, 不能並發執行?

  •  
  •   013231 · Jul 6, 2012 · 4377 views
    This topic created in 5065 days ago, the information mentioned may be changed or developed.


    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的請求分配到不同線程上去?
    2 replies    1970-01-01 08:00:00 +08:00
    reorx
        1
    reorx  
       Jul 6, 2012
    这就是阻塞(blocking)的特性,同一时间同一个url,只能对一个请求进行处理。就像一个窗口柜台,每次只能办理一个业务,而请求就像排队等候的人。

    Flask我不了解,但Tornado自带对非阻塞请求处理的支持。似乎对于大部分web框架来说这一点都是软肋。
    013231
        2
    013231  
    OP
       Jul 11, 2012   ❤️ 1
    這個問題已經解決了. 我的推斷是錯誤的, 被阻塞的不是服務器, 是瀏覽器. 根據我的測試:
    Chrome瀏覽器中, 如果兩個請求的協議\服務器\端口\路徑都相同, 那麼在前一個請求完成前, 後一個請求根本不會發出去.
    Firefox瀏覽器中, 如果兩個請求的協議\服務器\端口\路徑\參數都相同, 那麼在前一個請求完成前, 後一個請求根本不會發出去.
    Safari瀏覽器中未發現阻塞現象.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4344 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 05:33 · PVG 13:33 · LAX 22:33 · JFK 01:33
    ♥ Do have faith in what you're doing.