kno*_*orv 3 java concurrency multithreading jvm
请考虑以下静态方法:
public void static foo() {
// some heavy operation operating on a shared resource.
}
Run Code Online (Sandbox Code Playgroud)
假设当并发呼叫数foo()超过十(10)时系统变得不稳定.
如果我在这种情况下启动了100个线程,所有线程都foo()在处理请求,那么应用程序将变得不稳定,因为我们超过了系统可以处理的并发请求数.
提高有限并发价格稳定性的一种方法是将代码更改为:
public void static synchronized foo() {
// some heavy operation operating on a shared resource.
}
Run Code Online (Sandbox Code Playgroud)
系统现在能够处理100个线程,所有线程都可以处理foo()请求,因为一次只允许一个呼叫foo().
我想限制访问的场景如何foo()只N允许并发请求?在Java中实现这种限制的最简单方法是什么?
| 归档时间: |
|
| 查看次数: |
1311 次 |
| 最近记录: |