我在Windows上運行Apache/Mod_WSGI下的Django服務器。作爲處理我的用戶請求的一部分,我做了很多需要網絡I/O的事情。我通過Django ORM運行查詢(到另一臺機器上的數據庫服務器)。我也做非Django的ODBC查詢,我讀網絡共享上的文件和目錄,我颳了其他網站。在Django中阻塞網絡調用阻止所有線程?
我敢肯定,至少我的一些網絡I/O阻塞(ODBC的查詢和網絡刮飛躍記)。而Windows上的Apache只有一個線程處理模型,而不是一個多進程模型。
所以我的第一個問題是:如果我做一個阻塞網絡電話同時響應的請求,並阻止所有的Apache服務器內的真實響應請求線程,或者僅僅是線程?
我的第二個問題是:任何這四種網絡電話(Django的ORM,ODBC,網絡共享,HTTP)已知非阻塞?