Think of cpu cores as vans. Think of threads as people. Think of jobs as parcels.
Person 0 is the manager. The Game Logic thread. Thread zero.
I can have 50 parcels/threads going out today but only 4 vans. The manager always wants one van. He runs the show.
The manager can deliver most if not all on his own. When he cant, you need to start delegating your team. Never let the manager get over worked, that’s the key, and be careful with employing 500 team members with only 3 vans to use. Better to employ two or three to deliver all in an orderly and efficient fashion. Your manager is earning his pay. And not forgetting that others can’t modify other parcels without permission, etc… and so on.
I mean… that’s about as simple as I can explain it. I hope that helps you understand the complexities of multithreading.
If the dust hasn’t settled too much, I think each thread wants 1mb on the heap or some crap. It gets technical after my little story