【发布时间】:2013-02-27 02:43:14
【问题描述】:
我正在考虑使用Java Semaphore 类实现与leaky bucket algorithm 非常相似的东西,并且想知道它是否适合。目标是限制对共享资源的写入速率,我将有一个线程定期向信号量释放一些许可,并且一组工作线程试图获取与他们想要的项目大小一样多的许可写。
我关心的是 Semaphore 是否在幕后使用单个 int 实现,或者它的空间使用是否与活动许可的数量成线性关系(使用某种许可队列等实现。)如果空间(因此时间)是线性的,那么我显然想避免谈论以字节为单位的速率。如果它只是一个int,除了非常高的费率溢出之外我应该没有这样的担忧(在这种情况下,我想要一个long-支持Semaphore)
有人有什么想法吗?
【问题讨论】:
标签: java semaphore throttling