When different kinds of tasks exist, we have organize them based on the resources they require.
New Task Per Request (Resource may be shared):
"Turn on a new stove top each time an order needs to be processed."
- One person can turn on multiple stove tops (can be concurrent).
- Two people can turn on stove tops (can be parallel).
- Only possible when the resource is able to handle it.
One Long-Lived Task (Resource is exclusive):
"The ice cream machine can only create one ice cream at a time."
- One person can only make one ice cream at one time (cannot be concurrent).
- Cannot have two people make one ice cream each (cannot be parallel).
- Only one person has access to the ice cream machine.
- The person who has access receives requests to make ice creams, and sends them back.