gpt4 book ai didi

java - 使用 Java Semaphore 类的 Leaky bucket-like rate 速率限制

转载 作者:行者123 更新时间:2023-11-30 09:25:53 24 4
gpt4 key购买 nike

我正在考虑实现与 leaky bucket algorithm 非常相似的东西使用 Java Semaphore 类,想知道它是否适合。目标是限制对共享资源的写入速率,我会让一个线程定期向信号量释放一些许可,以及一组工作线程尝试获取与他们想要的项目大小一样多的许可写。

我关心的是 Semaphore 是否在幕后使用单个 int 实现,或者它的空间使用是否与 Activity 许可数成线性关系(使用一些实现许可队列之类的。)如果空间(以及时间)是线性的,那么我显然想避免谈论以字节为单位的速率。如果它只是一个 int,除了非常高的速率溢出(在这种情况下我想要一个 long-backed Semaphore)

有人有什么想法吗?

最佳答案

来自 http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Semaphore.html :

no actual permit objects are used; the Semaphore just keeps a count of the number available and acts accordingly.

我检查了源代码,它确实由 int(不是 long)支持。

关于java - 使用 Java Semaphore 类的 Leaky bucket-like rate 速率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15096630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com