我聽說默認情況下,Web.py是多線程Web服務器。因此創建了一個簡單的應用程序,在返回「Hello World」之前睡了一分鐘。Web.py:無法使用多個瀏覽器標籤獲取多線程行爲
現在,如果我幾乎同時調用從兩個不同的瀏覽器這個應用程序(即http://localhost:8080/),我得到的「Hello World」幾乎同時在這兩種瀏覽器在60秒之後 - 這表明在Web.py端的多線程工作正常。
但是,如果我打開在同一個瀏覽器兩個選項卡,並幾乎同時調用相同的URL(相隔幾秒鐘),我得到了第一個選項卡中的「Hello world」 60秒後如預期,然後這個「Hello World 「在第一個響應60秒後的第二個標籤中。這是總共120秒。因此表明Web.py不會執行多線程。
我想最終創建一個python客戶端應用程序(使用httplib2),它將發出來自不同線程的http請求。那些來自不同線程的http請求可能完全相同。我假設或多或少類似於在同一瀏覽器中從不同標籤發出http請求。
在這種情況下如何獲得多線程行爲的任何想法?或者我做錯了什麼?任何特殊的web.py配置都需要?或任何其他(簡單)網絡框架,將做我所期望的。
感謝您的回答。我只嘗試過FF和Chrome。我在IE中再次嘗試了它,你完全正確 - 我在同一時間在兩個選項卡中都得到了響應。然後我創建了一個多線程的python程序來同時發出兩個urllib.urlopen()請求。兩個線程都同時得到響應。 – 2011-03-24 14:15:58
是的!我剛剛使用多線程Tornado引擎發現了同樣的事情。我很感興趣,看看這是否在ajax請求中做了同樣的事情。 – Humphrey 2011-11-16 01:20:17