私はWindows上でApache/Mod_WSGIの下でDjangoサーバーを実行しています。私のユーザー要求の処理の一環として、ネットワークI/Oを必要とする多くのことを行います。 Django ORM(別のマシンのデータベースサーバー)を使ってクエリを実行します。また、非Django ODBCクエリを作成し、ネットワーク共有上のファイルとディレクトリを読み込み、他のWebサイトをスクラップします。Django内のブロックネットワーク呼び出しはすべてのスレッドをブロックしますか?
私のネットワークI/Oの少なくとも一部がブロックされていることは間違いありません(ODBCクエリとWebスクラップングを心に留めておくこと)。 Windows上のApacheには、マルチプロセスモデルではなく、スレッド処理モデルしかありません。
私の最初の質問は次のとおりです。要求に応答しているときにネットワーク接続をブロックすると、Apacheサーバー内のすべてのスレッド、または要求に応答しているスレッドだけがブロックされますか?
私の2番目の質問は、これらの4種類のネットワークコール(Django ORM、ODBC、ネットワーク共有、HTTP)がノンブロッキングであることが知られていますか?