Установить время ожидания потока от исполнителя пула потоков - PullRequest
0 голосов
/ 16 декабря 2018

Сам вопрос говорит сам за себя.Я знаю, как создать исполнителя пула потоков и запустить Async для данного исполнителя пула потоков, но я хотел бы знать, есть ли способ установить разные тайм-ауты для разных потоков?

Пример:

@Async("thread pool executor") Func1

@Async("thread pool executor") Func2

Если да, как мне этого добиться?

Я хочу, чтобы время первого из них составляло 7 секунд, а второго - 1 секунду.

1 Ответ

0 голосов
/ 16 декабря 2018

Существует один способ установить время на Future объекте, но не на ThreadPool, но вы не можете установить его на уровне потока, тем не менее вы можете установить его на уровне задачи (потому что нет гарантии, чтопоток собирается выполнить задачу)

Пример

@Async("someExecutor")
public Future<String> asyncService() {

    return CompletableFuture.completedFuture("start").thenApply(s->{

    System.out.println(Thread.currentThread().getName()+" - "+Thread.currentThread().getThreadGroup());
        return "hello";
    });     
}

get Future

Future<String> result = asyncService.asyncService();
    result.get(3, TimeUnit.SECONDS);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...