マルチスレッドを利用するために、チェリーピーサーバーでボトルを使用しています。私が理解しているように、これにより、各リクエストが異なるスレッドによって処理されます。したがって、次のコードが与えられます。
from bottle import request, route
somedict = {}
@route("/read")
def read():
return somedict
@route("/write", method="POST")
def write():
somedict[request.forms.get("key")] = request.forms.get("value")
somedict はスレッドセーフでしょうか? somedict を管理するためにデーモン スレッドが実行された場合、それがアクティブなセッションの辞書であり、デーモン スレッドが期限切れのセッションをプルーニングするとします。そうでない場合は、単純なロック機構で十分であり、読み取り、書き込み、およびデーモンスレッドで、またはデーモンスレッドでのみ使用する必要がありますか?
また、私が理解しているように、cherrypy は真のマルチスレッド サーバーです。Pythonsスレッドは真のスレッドではないため、cherrypyを使用しているときにデーモンスレッドを実装するために使用する必要があるより適切な方法はありますか? ただし、このプロジェクトではボトルに固執することを好むチェリーピー環境をあまり掘り下げたくないので、ボトルから離れたり、アプリをチェリーピーに移行したりする場合は、今のところ問題ありません。スレッドに関するドキュメントにはあまり見られなかったので、まだ知りたいです。