考虑以下静态方法:
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中实现这种限制的最简单方法是什么?