Additional information about executors
In this chapter, we have extended ThreadPoolExecutor
and the ScheduledThreadPoolExecutor
class and overridden some of their methods. But you can override more methods if you want a more particular behavior. These are some methods you can override:
shutdown()
: You must explicitly call this method to end the execution of the executor. You can override it to add some code to free additional resources used by your own executor.shutdownNow()
: The difference betweenshutdown()
andshutdownNow()
is that theshutdown()
method waits for the finalization of all the tasks that are waiting in the executor.submit()
,invokeall()
, orinvokeany()
: you call these methods to send concurrent tasks to the executor. You can override them if you need to do some actions before or after a task is inserted in the task queue of the executor. Note that adding a custom action before or after the task is enqueued is different than adding a custom action before or after it&apos...