RateLimiter类似于JDK的信号量Semphore,他用来限制对资源并发访问的线程数。
RateLimiter limiter = RateLimiter.create(4.0); //每秒不超过4个任务被提交limiter.acquire(); //请求RateLimiter, 超过permits会被阻塞executor.submit(runnable); //提交任务
也可以以非阻塞的形式来使用:
If(limiter.tryAcquire()){ //未请求到limiter则立即返回false doSomething();}else{ doSomethingElse();}
原文链接:http://outofmemory.cn/java/guava/concurrent/RateLimiter
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4347/viewspace-2805647/ ,如需转载,请注明出处,否则将追究法律责任。