以下の内容はhttps://shuzo-kino.hateblo.jp/entry/2023/08/04/235509より取得しました。


Python3の標準ライブラリのみでCGI その2:多少の並行処理ができるようにする

前回の例ではhttp.serverの仕様上、リクエストを一個しか処理できません
そこで、複数処理ができるようにthreadingを使って逃げてみます
……pythonで並列処理ってあまりいい思い出が無いですけどね(白目

実際のところ

import http.server
import socketserver
import threading

class ThreadedHTTPServer(socketserver.ThreadingMixIn, http.server.HTTPServer):
    daemon_threads = True

class CGIHandler(http.server.CGIHTTPRequestHandler):
    cgi_directories = ["/path/to"]  # CGIスクリプトを配置しているディレクトリ

with ThreadedHTTPServer(("", 8000), CGIHandler) as httpd:
    print("serving at port", 8000)
    httpd.serve_forever()

ThreadedHTTPServerは何をやっているのか

ForkingMixIn および ThreadingMixIn 配合クラス (mix-in classes) を使えば、非同期的な動作をサポートできます。

たとえば以下の例の場合、UDPServerを多重スレッド化できる模様。

class ThreadingUDPServer(ThreadingMixIn, UDPServer):
    pass

更に、上の例のようにdaemon_threadsの変数を Trueにしておくことで




以上の内容はhttps://shuzo-kino.hateblo.jp/entry/2023/08/04/235509より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14