Here's a diagram showing the life cycle of a job:
By default, a job is started as soon as it's created. This happens both when the job is created with launch() and when it's done with Job(). As we will see in a bit, it's possible to create a job without starting it.
There are five states in the diagram:
- New: A job that exists but is not executing yet.
- Active: A job that is running. A suspended job is also considered active.
- Completed: When the job is not executing any longer.
- Cancelling: When cancel() is called on a Job that is active, it may require time for the cancellation to complete. This is an intermediate state between ...