Обработка количества потоков в API - PullRequest
0 голосов
/ 02 апреля 2012

У меня есть API, который может использоваться несколькими приложениями. Я хочу отрегулировать свой API, чтобы обрабатывать только фиксированное количество заявок на приложение. Предположим, приложение. X дает около 30 запросов, и я только 20 разрешил этому приложению использовать мой API. Поэтому я допускаю только 20 потоков и помечаю другие как ожидающие, аналогичные действия должны быть выполнены для всех API.

Какой будет лучший способ сделать это.

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Как насчет просмотра:

ExecutorService.newFixedThreadPool(int nThreads)

Исполнители на Java 1.5

0 голосов
/ 17 апреля 2012

То, что вы ищете, называется семафором. Класс в Java

java.util.concurrent.Semaphore

Создайте семафор как в

mysem = new Semaphore(20);

Затем в вашем API вы делаете следующее

void myAPI()  {
        mysem.acquire();
        //My API logic comes here
        finally {
           mysem.release();
        }
    }
...