を開始しましたconcurrent.futures
は(Pythonの3.2以降STDLIBで):あなたがスレッドのケースの実装を見ることができるように
from BaseHTTPServer import HTTPServer, test
from SimpleHTTPServer import SimpleHTTPRequestHandler
from SocketServer import ThreadingMixIn
from concurrent.futures import ThreadPoolExecutor # pip install futures
class PoolMixIn(ThreadingMixIn):
def process_request(self, request, client_address):
self.pool.submit(self.process_request_thread, request, client_address)
def main():
class PoolHTTPServer(PoolMixIn, HTTPServer):
pool = ThreadPoolExecutor(max_workers=40)
test(HandlerClass=SimpleHTTPRequestHandler, ServerClass=PoolHTTPServer)
if __name__=="__main__":
main()
はかなり簡単です。
あなたはserver.py
に保存した場合のように、あなたはそれを実行できます。このコマンドはhttp://your_host:8000/
上の要求にサービスを提供するために40件のスレッド件まで使用しています
$ python -mserver
。
HTTPServer
の主な使用例はテスト目的です。
出典
2012-08-02 17:56:49
jfs
https://pypi.python.org/pypi/Spawning/ –
のようなイベントレットベースのサーバーと比較する必要があるかもしれませんが、これはpy 2.7を使用しても機能しません。 pickle.PicklingError:をpickleできません:thread.lockとして見つかりません –
OriginalCliche
私はpy 2.7を使用していますが、私のコードは何もピクルしません –