Javaクラスを使用してリーキーバケットアルゴリズムによく似たものを実装することを考えており、Semaphoreそれが適切かどうか疑問に思っていました。目標は、共有リソースへの書き込み速度を制限することです。1つのスレッドで定期的にセマフォへの許可を解放し、ワーカースレッドのプールで必要なアイテムのサイズと同じ数の許可を取得しようとします。書く。
私の懸念は、が舞台裏でSemaphore単一を使用して実装されているかどうか、またはそのスペース使用量がアクティブな許可の数で線形であるかどうか(ある種の許可のキューなどを使用して実装されているかどうか)です。スペース(したがって時間)が線形である場合int、それなら私は明らかにバイト単位のレートについて話すのを避けたいと思います。それがただの場合int、私は非常に高いレートのオーバーフロー以外にそのような心配はないはずです(この場合、私はlong-backedが必要ですSemaphore)
誰かアイデアはありますか?