Semaphore和RateLimiter有什么区别?
来源:6-3 J.U.C之AQS-Semaphore
![](http://img1.sycdn.imooc.com/user/573c1ae30001279e05100448-100-100.jpg)
蝙蝠之殇
2018-05-31
老师,Semaphore和RateLimiter根据他们的特性,都是可以用来限制并发,那么这两者有什么区别呢?
写回答
1回答
-
Jimin
2018-05-31
你好,Semaphore:信号量,直译很难理解。作用是限定只有抢到信号的线程才能执行,其他的都得等待!你可以设置N个信号,这样最多可以有N个线程同时执行。注意,其他的线程也在,只是挂起了。
RateLimiter是guava的,直译是速率限制器。其作用是 限制一秒内只能有N个线程执行,超过了就只能等待下一秒。注意,N是double类型。
前者控制的是同一时刻同时运行的线程数目,后者控制的是1s内允许执行的次数,效果上是不同的。
062018-05-31
相似问题