They are used to split up work into packages that can be worked on in parallel instead of one task after another.Īn example is: There's one thread dedicated to the Graphics - it's job is to push information to the driver of your gpu.
Threads are a tricky thing to implement and manage. What you're seeing is a symptom, not the underlying problem.