2013-03-06 2 views
2

Я использую com.google.common.util.concurrent.SimpleTimeLimiter,
интересно, если это позаботится об отключении потока? Я конструирую это, используя конструктор noargs new SimpleTimeLimiter(), но это не дает способа вызвать shutdown().SimpleTimeLimiter shutdown

ответ

2

Обратите внимание на JavaDoc из ExecutorService.shutdown()

Инициирует процедуру завершения работы, в которых ранее представленные задачи выполняется, но никакие новые задачи не будут приняты. Invocation не имеет никакого дополнительного эффекта, если он уже выключен.

Подложка ExecutorService.submit(callable) будет называться ONCE внутри SimpleTimeLimiter. Поскольку НИКАКИЕ другие новые задачи не будут отправлены, так что shutdown() не требуется.

Но если мы используем конструктор SimpleTimeLimiter(ExecutorService executor), тогда мы должны нести ответственность за shutdown().

+0

hmmm ... Любые комментарии? –