I'm of the belief that spawning threads on demand is an anti-pattern; threads should spawn on program startup, and sleep until they have work to do.
Hmm, I need to think on this to decide whether I agree. What's your reasoning for this opinion? Is it just based on lower latency, or is it more of an architectural/correctness thing?