Possibility of thinking of multi-threading design patterns as a way to organize threading code.
Some possible patterns include:
- Fire and Forget (background thread)
- Periodic (Timer)
- IO thread
- Producer/Consumer
- Worker thread (work queue)
- Copier thread
- Pipeline (must be careful)
- Swarm?
The background thread could be joined at a later time or a thread that runs it’s course and dies.
We need a good term for the latter. Java calls them daemon threads. I don’t think the term conjures the right connotations.