Blocks until all work has completed execution after a shutdown request, or the timeout occurs,
or the current thread is interrupted, whichever happens first.
Returns true if all work has completed following shut down. Note that isTerminated is never
true unless either shutdown or shutdownNow was called first.
Initiates an orderly shutdown in which previously submitted work is finished, but no new work
will be accepted. Invocation has no additional effect if already shut down.
This method does not wait for previously submitted work to complete execution. Use
awaitTermination to do that.
shutdownNow()
publicvoidshutdownNow()
Attempts to stop all actively executing work and halts the processing of waiting work.
This method does not wait for actively executing work to terminate. Use awaitTermination to
do that.
There are no guarantees beyond best-effort attempts to stop processing actively executing
work. For example, typical implementations will cancel via Thread.interrupt(), so any task that
fails to respond to interrupts may never terminate.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eThe latest version of \u003ccode\u003eExecutorAsBackgroundResource\u003c/code\u003e is 2.63.1, and this class wraps an \u003ccode\u003eExecutorService\u003c/code\u003e to be used as a \u003ccode\u003eBackgroundResource\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eExecutorAsBackgroundResource\u003c/code\u003e implements the \u003ccode\u003eBackgroundResource\u003c/code\u003e interface and inherits methods from the \u003ccode\u003eObject\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eThe constructor \u003ccode\u003eExecutorAsBackgroundResource(ExecutorService executor)\u003c/code\u003e allows you to provide an \u003ccode\u003eExecutorService\u003c/code\u003e to be wrapped.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eawaitTermination\u003c/code\u003e, \u003ccode\u003eclose\u003c/code\u003e, \u003ccode\u003eisShutdown\u003c/code\u003e, \u003ccode\u003eisTerminated\u003c/code\u003e, \u003ccode\u003eshutdown\u003c/code\u003e, and \u003ccode\u003eshutdownNow\u003c/code\u003e are the core methods provided by the \u003ccode\u003eExecutorAsBackgroundResource\u003c/code\u003e class for managing the underlying \u003ccode\u003eExecutorService\u003c/code\u003e and its lifecycle.\u003c/p\u003e\n"],["\u003cp\u003eThis page contains documentation for many prior versions of the \u003ccode\u003eExecutorAsBackgroundResource\u003c/code\u003e class dating back to 2.7.1.\u003c/p\u003e\n"]]],[],null,["# Class ExecutorAsBackgroundResource (2.69.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.69.0 (latest)](/java/docs/reference/gax/latest/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.68.2](/java/docs/reference/gax/2.68.2/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.67.0](/java/docs/reference/gax/2.67.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.66.0](/java/docs/reference/gax/2.66.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.65.0](/java/docs/reference/gax/2.65.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.63.1](/java/docs/reference/gax/2.63.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.62.0](/java/docs/reference/gax/2.62.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.61.0](/java/docs/reference/gax/2.61.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.60.0](/java/docs/reference/gax/2.60.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.59.1](/java/docs/reference/gax/2.59.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.58.0](/java/docs/reference/gax/2.58.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.57.0](/java/docs/reference/gax/2.57.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.55.0](/java/docs/reference/gax/2.55.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.54.1](/java/docs/reference/gax/2.54.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.53.0](/java/docs/reference/gax/2.53.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.52.0](/java/docs/reference/gax/2.52.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.51.0](/java/docs/reference/gax/2.51.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.50.0](/java/docs/reference/gax/2.50.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.49.0](/java/docs/reference/gax/2.49.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.48.1](/java/docs/reference/gax/2.48.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.47.0](/java/docs/reference/gax/2.47.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.46.1](/java/docs/reference/gax/2.46.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.45.0](/java/docs/reference/gax/2.45.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.43.0](/java/docs/reference/gax/2.43.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.42.0](/java/docs/reference/gax/2.42.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.41.0](/java/docs/reference/gax/2.41.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.39.0](/java/docs/reference/gax/2.39.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.38.0](/java/docs/reference/gax/2.38.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.37.0](/java/docs/reference/gax/2.37.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.36.0](/java/docs/reference/gax/2.36.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.35.0](/java/docs/reference/gax/2.35.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.34.1](/java/docs/reference/gax/2.34.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.33.0](/java/docs/reference/gax/2.33.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.32.1](/java/docs/reference/gax/2.32.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.31.1](/java/docs/reference/gax/2.31.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.30.1](/java/docs/reference/gax/2.30.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.24.0](/java/docs/reference/gax/2.24.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.23.3](/java/docs/reference/gax/2.23.3/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.22.0](/java/docs/reference/gax/2.22.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.21.0](/java/docs/reference/gax/2.21.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.20.1](/java/docs/reference/gax/2.20.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.19.6](/java/docs/reference/gax/2.19.6/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.18.7](/java/docs/reference/gax/2.18.7/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.17.0](/java/docs/reference/gax/2.17.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.16.0](/java/docs/reference/gax/2.16.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.15.0](/java/docs/reference/gax/2.15.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.14.0](/java/docs/reference/gax/2.14.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.13.0](/java/docs/reference/gax/2.13.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.12.2](/java/docs/reference/gax/2.12.2/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.11.0](/java/docs/reference/gax/2.11.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.10.0](/java/docs/reference/gax/2.10.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.9.0](/java/docs/reference/gax/2.9.0/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.8.1](/java/docs/reference/gax/2.8.1/com.google.api.gax.core.ExecutorAsBackgroundResource)\n- [2.7.1](/java/docs/reference/gax/2.7.1/com.google.api.gax.core.ExecutorAsBackgroundResource) \n\n public class ExecutorAsBackgroundResource implements BackgroundResource\n\nExecutorAsBackgroundResource wraps an [ExecutorService](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html) so that it can be used as a [BackgroundResource](/java/docs/reference/gax/latest/com.google.api.gax.core.BackgroundResource). \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e ExecutorAsBackgroundResource \n\nImplements\n----------\n\n[BackgroundResource](/java/docs/reference/gax/latest/com.google.api.gax.core.BackgroundResource) \n\nInherited Members\n-----------------\n\n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nConstructors\n------------\n\n### ExecutorAsBackgroundResource(ExecutorService executor)\n\n public ExecutorAsBackgroundResource(ExecutorService executor)\n\nMethods\n-------\n\n### awaitTermination(long duration, TimeUnit unit)\n\n public boolean awaitTermination(long duration, TimeUnit unit)\n\nBlocks until all work has completed execution after a shutdown request, or the timeout occurs,\nor the current thread is interrupted, whichever happens first.\n\n### close()\n\n public void close()\n\n### isShutdown()\n\n public boolean isShutdown()\n\nReturns true if this background resource has been shut down.\n\n### isTerminated()\n\n public boolean isTerminated()\n\nReturns true if all work has completed following shut down. Note that isTerminated is never\ntrue unless either shutdown or shutdownNow was called first.\n\n### shutdown()\n\n public void shutdown()\n\nInitiates an orderly shutdown in which previously submitted work is finished, but no new work\nwill be accepted. Invocation has no additional effect if already shut down.\n\nThis method does not wait for previously submitted work to complete execution. Use\nawaitTermination to do that.\n\n### shutdownNow()\n\n public void shutdownNow()\n\nAttempts to stop all actively executing work and halts the processing of waiting work.\n\nThis method does not wait for actively executing work to terminate. Use awaitTermination to\ndo that.\n\nThere are no guarantees beyond best-effort attempts to stop processing actively executing\nwork. For example, typical implementations will cancel via Thread.interrupt(), so any task that\nfails to respond to interrupts may never terminate."]]