Consider the following static method:
public void static foo() {
// some heavy operation operating on a shared resource.
}
假设当并发调用foo()
的数量超过十(10)时,系统变得不稳定。
如果在这种情况下我启动100个线程,所有线程都向foo()
发送请求,则应用程序将变得不稳定,因为我们超出了系统可以处理的并发请求数量。
提高稳定性的一种方法是更改代码:
public void static synchronized foo() {
// some heavy operation operating on a shared resource.
}
系统现在将能够处理100个线程同时请求
foo()
,因为一次只允许一个调用 foo()
。如果我想限制对
foo()
的访问,只允许最多 N
个并发请求,有什么简单的方法可以在Java中实现此限制?