我有一个可以被多个应用程序使用的api。我想管理我的api,以便每个应用程序只处理固定数量的请求。假设app。 X提供了大约30个请求,我允许这个特定的应用程序使用我的api。所以我只允许20个线程并将其他线程标记为等待,所有api应该做类似的事情。
最好的方法是什么。
答案 0 :(得分:2)
答案 1 :(得分:0)
您正在寻找的是一个信号量。 java中的类是
java.util.concurrent.Semaphore
在
中创建一个信号量mysem = new Semaphore(20);
然后在您的API中执行以下操作
void myAPI() {
mysem.acquire();
//My API logic comes here
finally {
mysem.release();
}
}