![JAR search and dependency download from the Maven repository](/logo.png)
javadoc.com.google.common.util.concurrent.AbstractExecutionThreadService.html Maven / Gradle / Ivy
The newest version!
AbstractExecutionThreadService (Guava: Google Core Libraries for Java 11.0.1 API)
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD
DETAIL: FIELD | CONSTR | METHOD
com.google.common.util.concurrent
Class AbstractExecutionThreadService
java.lang.Object
com.google.common.util.concurrent.AbstractExecutionThreadService
- All Implemented Interfaces:
- Service
@Beta
public abstract class AbstractExecutionThreadService
- extends Object
- implements Service
Base class for services that can implement startUp()
, run()
and
shutDown()
methods. This class uses a single thread to execute the
service; consider AbstractService
if you would like to manage any
threading manually.
- Since:
- 1.0
- Author:
- Jesse Wilson
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface com.google.common.util.concurrent.Service |
---|
Service.State |
Constructor Summary | |
---|---|
AbstractExecutionThreadService()
|
Method Summary | |
---|---|
protected Executor |
executor()
Returns the Executor that will be used to run this service. |
protected String |
getServiceName()
Returns the name of this service. |
boolean |
isRunning()
Returns true if this service is running. |
protected abstract void |
run()
Run the service. |
protected void |
shutDown()
Stop the service. |
ListenableFuture<Service.State> |
start()
If the service state is Service.State.NEW , this initiates service startup
and returns immediately. |
Service.State |
startAndWait()
Initiates service startup (if necessary), returning once the service has finished starting. |
protected void |
startUp()
Start the service. |
Service.State |
state()
Returns the lifecycle state of the service. |
ListenableFuture<Service.State> |
stop()
If the service is starting or running, this initiates service shutdown and returns immediately. |
Service.State |
stopAndWait()
Initiates service shutdown (if necessary), returning once the service has finished stopping. |
String |
toString()
|
protected void |
triggerShutdown()
Invoked to request the service to stop. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
AbstractExecutionThreadService
public AbstractExecutionThreadService()
Method Detail |
---|
startUp
protected void startUp() throws Exception
- Start the service. This method is invoked on the execution thread.
- Throws:
Exception
run
protected abstract void run() throws Exception
- Run the service. This method is invoked on the execution thread.
Implementations must respond to stop requests. You could poll for lifecycle
changes in a work loop:
public void run() { while (
...or you could respond to stop requests by implementingisRunning()
) { // perform a unit of work } }triggerShutdown()
, which should causerun()
to return.- Throws:
Exception
shutDown
protected void shutDown() throws Exception
- Stop the service. This method is invoked on the execution thread.
- Throws:
Exception
triggerShutdown
protected void triggerShutdown()
- Invoked to request the service to stop.
executor
protected Executor executor()
- Returns the
Executor
that will be used to run this service. Subclasses may override this method to use a customExecutor
, which may configure its worker thread with a specific name, thread group or priority. The returned executor'sexecute()
method is called when this service is started, and should return promptly.The default implementation returns a new
Executor
that sets the name of its threads to the string returned bygetServiceName()
toString
public String toString()
start
public final ListenableFuture<Service.State> start()
- Description copied from interface:
Service
- If the service state is
Service.State.NEW
, this initiates service startup and returns immediately. If the service has already been started, this method returns immediately without taking action. A stopped service may not be restarted.- Returns:
- a future for the startup result, regardless of whether this call
initiated startup. Calling
Future.get()
will block until the service has finished starting, and returns one ofService.State.RUNNING
,Service.State.STOPPING
orService.State.TERMINATED
. If the service fails to start,Future.get()
will throw anExecutionException
, and the service's state will beService.State.FAILED
. If it has already finished starting,Future.get()
returns immediately. Cancelling this future has no effect on the service.
startAndWait
public final Service.State startAndWait()
- Description copied from interface:
Service
- Initiates service startup (if necessary), returning once the service has
finished starting. Unlike calling
start().get()
, this method throws no checked exceptions, and it cannot be interrupted.- Specified by:
startAndWait
in interfaceService
- Returns:
- the state of the service when startup finished.
isRunning
public final boolean isRunning()
state
public final Service.State state()
- Description copied from interface:
Service
- Returns the lifecycle state of the service.
stop
public final ListenableFuture<Service.State> stop()
- Description copied from interface:
Service
- If the service is starting or running, this initiates service shutdown and returns
immediately. If the service is new, it is
terminated without having been started nor
stopped. If the service has already been stopped, this method returns
immediately without taking action.
- Returns:
- a future for the shutdown result, regardless of whether this call
initiated shutdown. Calling
Future.get()
will block until the service has finished shutting down, and either returnsService.State.TERMINATED
or throws anExecutionException
. If it has already finished stopping,Future.get()
returns immediately. Cancelling this future has no effect on the service.
stopAndWait
public final Service.State stopAndWait()
- Description copied from interface:
Service
- Initiates service shutdown (if necessary), returning once the service has
finished stopping. If this is
Service.State.STARTING
, startup will be cancelled. If this isService.State.NEW
, it isterminated
without having been started nor stopped. Unlike callingstop().get()
, this method throws no checked exceptions.- Specified by:
stopAndWait
in interfaceService
- Returns:
- the state of the service when shutdown finished.
getServiceName
protected String getServiceName()
- Returns the name of this service.
AbstractExecutionThreadService
may include the name in debugging output.Subclasses may override this method.
- Since:
- 10.0
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright © 2010-2012. All Rights Reserved.
© 2015 - 2025 Weber Informatics LLC | Privacy Policy