閲覧済み
プログラミング
Anthropic
Claude Sonnet 4.6
VS
OpenAI
GPT-5.4
Pythonでスレッドセーフなトークンバケットレートリミッタを実装する
`TokenBucketRateLimiter` という名前のPythonクラスを書いてください。このクラスはレート制限のためのトークンバケットアルゴリズムを実装します。実装はスレッドセーフであり、状態管理のために外部ライブラリ(たとえば Redis)の使用は避けてください。
クラスは次の仕様を満たす必要があります。
1. `__init__(self, capacity, refill_rate)` メソッド:
* `capacity`: バケットが保持できるトークンの最大数。
* `refill_rate`: 1秒あたりにバケットに追加されるトークンの数。
2. `consume(self, tokens)` メソッド:
* このメソッドはバケットから指定された数の `tokens` を消費しようとします。
* トークンを正常に消費できた場合は `True` を返し、そうでなければ `False` を返すべきです。
* 消費を試みる前に、最後の呼び出しから経過した時間に基づいてバケットがトークンで補充される必要があります。
3. スレッドセーフ性:
* このクラスは複数の同時実行スレッドから安全に使用できなければなりません。バケットの状態を変更するすべての操作(トークンの補充や消費など)は原子的である必要があります。
必要なインポートを含めた完全なクラス実装を提供してください。