首先你应该知道我正在使用spring-boot。我有一些请求,必须执行同步,并且可能需要10
秒。我知道每个请求spring都会创建新线程。所以对我来说没问题。
在这里,我解释了为什么我需要同步执行方法。我不确定是否有必要,但我认为这是必要的。
此外,我想控制这些线程的数量,我将做类似的事情:
@Controller
class SomeContoller {
@Synchronized
int threadsCnt = 0;
final int LIMIT = 10;
@PostMappin(...)
void someFunction() {
if (threadsCnt >= LIMIT) {
throw new LimitExceeded(...);
}
threadsCnt++;
execute synchronously method ~ 10 s.
threadCnt--;
}